1 名前:デフォルトの名無しさん [2017/11/08(水) 11:26:30.13 ID:+KUB1/9hd.net] スレ立ての際は一行目に !extend:checked:vvvvv:1000:512 と入れてスレ立てして下さい ExcelのVBAに関する質問スレです コード書き込みや作成依頼もOK ※関連スレ VBAなんでも質問スレ Part2 mevius.2ch.net/test/read.cgi/tech/1432173164/ Access VBA 質問スレ Part1 mevius.2ch.net/test/read.cgi/tech/1328536426/ Excel総合相談所 126 https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/ ※前スレ Excel VBA 質問スレ Part50 mevius.2ch.net/test/read.cgi/tech/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
601 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:20:01.90 ID:ZjZyIyTi0.net] >>585 Cellsはオブジェクトだ そしてWorksheetオブジェクトやCellsオブジェクトのプロパティでもある あと、ようやく時間ができたからWorkbookオブジェクトをVariantに代入しようとしたら当然のごとく「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」になった。 一体何を試してパスが云々なんて話が出てきたんだろう。 Dim V As Variant V = Workbooks(1) →代入不可 Set V = Workbooks(1) →VはVariant/Object/ThisWorkbook型 調べてみてもWorkbook型にデフォルトプロパティは設定してなさそう。
602 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:21:03.68 ID:ZjZyIyTi0.net] >>586 訂正 CellsはRangeオブジェクトだ そしてWorksheetオブジェクトやRangeオブジェクトのCellsプロパティでもある
603 名前:デフォルトの名無しさん [2017/12/17(日) 11:26:43.28 ID:e1NNF66l0.net] >>587 cellsはrange? 意味わからない プロパティでオブジェクトってなに? もっとうまく説明してくんね?
604 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:27:13.71 ID:gZkjaYao0.net] >>586 自分用語を使うどころかコードも正確にコピペできてないからそのまま実行しても無駄だぞ エスパー力を全力で働かせて察してあげない限り回答しても罵倒が返ってくる
605 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:37:53.28 ID:ZJu/+/V0x.net] >>585 メゾット君、プロパティだから状態というのは間違えやすい考え方だからこの際捨て去った方が良い プロパティは呼び出し元プログラムに対してオブジェクトのクラス内部への変数へのアクセスを提供するもので、アクセス先の変数のデータ型はプリミティブな値であることもあれば、何らかのオブジェクトである場合もある というか、オブジェクト式の途中で出てくるプロパティは全てオブジェクトへの参照を提供するプロパティだ Cellsの場合はRange型のオブジェクトへのアクセスを提供するプロパティだが、Grobalのメンバプロパティだから上位オブジェクト式を
606 名前:省略して書けるわけ [] [ここ壊れてます]
607 名前:デフォルトの名無しさん [2017/12/17(日) 11:46:44.41 ID:gC8RO3PCp.net] >>590 カタカタ使うな
608 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:53:12.87 ID:ZjZyIyTi0.net] >>589 そうだよな・・ 自分でクラス作ってみれば一発で理解できそうなものだが・・
609 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 11:59:28.64 ID:R4ec2g2Bx.net] >>592 あの質問者が自分でクラスを作れるようになるのって何年か先の話だろうな
610 名前:デフォルトの名無しさん [2017/12/17(日) 12:11:00.98 ID:gC8RO3PCp.net] クラス? オブジェクトに必要な要素を全部埋め込むやつだろ? もうできるよ? でもnewクラスの使い方が意味がわからない 同じクラスで(中身も同じ)なら作る意味ないんじゃねえの?
611 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 12:19:09.45 ID:ZjZyIyTi0.net] 確かにこれでは何年も先の話になりそうだ
612 名前:デフォルトの名無しさん [2017/12/17(日) 12:31:47.04 ID:gC8RO3PCp.net] いま、クラスをみてみた そしたらworkbookの中にworksheetsがプロパティとしていた どういうことだ? 俺はVBAの盲点をついたか?
613 名前:デフォルトの名無しさん [2017/12/17(日) 12:40:07.47 ID:gC8RO3PCp.net] 知りすぎたか?
614 名前:デフォルトの名無しさん [2017/12/17(日) 12:51:28.57 ID:gC8RO3PCp.net] dim i as long For i = 2 To i.Cells(.Rows.Count, 1).End(xlUp).Row このi.cellsの意味がわからない 教えてくれ
615 名前:デフォルトの名無しさん [2017/12/17(日) 13:07:40.63 ID:+CY9tzJPd.net] プロパティは内部変数へのアクセスに限らずいろんなこと出来るし、最初さっぱり理解できなかった。 まさかただのシンタックスシュガーだなんて想像してなかったからな。
616 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:23:13.67 ID:R4ec2g2Bx.net] >>598 このコードは絶対にコンパイル通らないぞ For i = 2 To i.Cells(.Rows.Count, 1).End(xlUp).Rowの意味なんてこっちが知りたいくらいだ
617 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:26:02.12 ID:R4ec2g2Bx.net] >>596 Worksheetオブジェクトのメンバの、Worksheetsコレクションにアクセスするプロパティじゃん 何が不思議なの?
618 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:27:44.67 ID:R4ec2g2Bx.net] New出来てないの笑える クラスモジュールを挿入できただけでクラス使えるようになってねぇじゃん
619 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 13:51:38.17 ID:5yg/jtY20.net] おそらく本職プログラマじゃなく事務の効率化でVBAに手出したんでしょ? どうせ片手間ならプログラミング適性無さそうだからおとなしくコピペで済ますのが無難だと思う たぶん永久に理解出来ないよ
620 名前:デフォルトの名無しさん [2017/12/17(日) 14:08:08.04 ID:gC8RO3PCp.net] >>600 正しいのはなに? https://i.imgur.com/rE2ZahI.jpg
621 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:15:19.48 ID:R4ec2g2Bx.net] >>604 自分で考えろよ、クラス作れるんだろ?w
622 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:17:42.01 ID:KxwCW4kM0.net] 最近オブジェクト指向の本読んでみたんだけど これまで作ってきた稚拙なスパゲティコードをこの際書き直してみたくなった
623 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 14:25:27.85 ID:R4ec2g2Bx.net] >>603 この人謙虚じゃないし、まぁ無理だろうな 素直に他人の文章やコードが読めず、自分の言語感覚だけで無理矢理白黒つけようとするだけの奴はそもそもプログラミングに向いてない
624 名前:名無し mailto:sage [2017/12/17(日) 19:27:22.86 ID:ZjZyIyTi0.net] >>606 今書き直しても、しばらくするとまた見識が増えて書き直したくなるだけやで
625 名前:デフォルトの名無しさん [2017/12/17(日) 19:31:24.74 ID:SRQ89yzu0.net] >>606 やめとき、もう一つ稚拙なスパゲティコードを作るだけやでw 魔道に堕ちた亡者どもはそれをリファクタリングと呼んでるらしいがなw
626 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 19:52:14.28 ID:/bdPdb8E0.net] >>607 メゾット君は>>573 の自演の通り、「○○が出来るなんて凄いヤツだ」って反応が欲しいだけでしょ。 その反応が欲しいだけだから本腰入れて勉強するつもりもないんだろうし、 彼の想像の中では、自分は「凄いヤツ」であり、それに反応する周囲は「凄くないヤツ」なので見下している。 見下している奴らと
627 名前:ゥ分の意見がぶつかったら自分の方が凄いので自分が正しい。だから自分の考えに固執する。 要するにヒカルの碁とかハイキューとかボールルームとかの主人公みたいな展開を妄想してんだろ。 どんな反応をしても彼の妄想に付き合わされるだけだし、妄想が維持できなくなると死ね死ね言うだけになるから構うだけ無駄。 [] [ここ壊れてます]
628 名前:デフォルトの名無しさん mailto:sage [2017/12/17(日) 20:35:35.89 ID:oSmkXHksa.net] >>607 プログラミングだけじゃなくありとあらゆることに向いてないだろうな わからんのは仕方ないけど、最低限の態度がなってない ネットだからなにやってもいい、って考えのやつはいずれリアルでもぼろが出るわ
629 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 00:39:13.70 ID:mfb75Iey0.net] プロシージャにconstでいくつか定義してあってこれまで何も問題なく動いてきた さっきその定数の一つを=22から=23に変更したら 定数式が必要です、のエラーが出る どうみても何も問題ないようにみえて分からない まさかと思いつつ 'Const sht_right As Integer = 23 Const sht_right As Integer = 23 このように問題の起きた行をコメント行として すぐ下に書き直したらエラーがでなくなった こういうのってあるもん?
630 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 02:00:09.91 ID:rupxZ3Ov0.net] >>612 上の奴、本来のコードだと全角スペース入ってなくね
631 名前:デフォルトの名無しさん [2017/12/18(月) 02:32:05.22 ID:m7yapXyd0.net] >>604 i.cells じゃなくて ws.cells さらに、with ws が有るので ws が省略できるから .cells で良い
632 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 03:17:17.83 ID:7TDAIkSx0.net] >>612 99%は単なるタイプミス 等幅フォントでスペースが明示できるテキストエディタにコピペしてみる
633 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 06:23:46.35 ID:TbHEuMcS0.net] どこかから、コピペした文字列に、見えない制御文字が入っているとか?
634 名前:名無し mailto:sage [2017/12/18(月) 07:46:18.89 ID:fX+okHt3M.net] >>612 その事例は見たことないけど、納得のいかないエラーが出たときは、とりあえずエクセル再起動
635 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 07:59:26.09 ID:mfb75Iey0.net] >>613 >>615 >>616 と俺も思った んで何度も打ち直してみた ちなみに上に貼ったのはそのままコピペしたもの 2を3にしただけなんでね、よくわからん >>617 再起動しなかったかもしれないんでまた起きたらやってみるわ コメント行にしたもともとの行は削除しちゃったんで実験できなくてすまん
636 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 08:01:30.70 ID:aXpCltYZ0.net] Constでエラー出した事あったけど、Endを実行してからやったら治ったことあるな。 値が記録されたままだったとかじゃね。
637 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 10:33:59.62 ID:ueSdYdZDa.net] >>612 なんか、Enumでもそんなことがたまに起こるよ VBEのバグらしいけど
638 名前:デフォルトの名無しさん [2017/12/18(月) 13:34:10.63 ID:NqlVCppnp.net] VBAってどうやったら上達しますか? エクセル関数は達人級です エクセル関数みたいに慣れだけじゃ無理ですかね
639 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 13:43:31.23 ID:IKrWJ0B8a.net] >>621 Javaを勉強したらvbaも上達するよ
640 名前:デフォルトの名無しさん [2017/12/18(月) 13:47:42.85 ID:NqlVCppnp.net] >>622 JAVA押しさんこんにちわ
641 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:03:31.64 ID:yddZnfruM.net] Java推しはともかく他の言語を学ぶのはVBAの上達にも実際かなり役立つ
642 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 14:45:58.67 ID:c1zJrPAZp.net] (またメゾットくんだよ…)
643 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 16:14:09.20 ID:D45Nh6pha.net] >>623 ジャワティーの話しはしてないんだ、ごめんな
644 名前:デフォルトの名無しさん [2017/12/18(月) 16:30:46.07 ID:NqlVCppnp.net] VBAだけやればいい javaは環境が大変だ したいこともないし
645 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 16:48:04.05 ID:D45Nh6pha.net] プログラムの上達に早道はないんだよなあ というか、遠回りに思えることが早道だったりする と、自戒の意を込めて どうしてもエクセルと絡めたいならC♯でもいいけどな
646 名前:デフォルトの名無しさん [2017/12/18(月) 16:49:17.57 ID:7XOqOvzzd.net] 今のうちにPythonを学ぶ www.publickey1.jp/blog/17/excelpython.html
647 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 17:57:32.74 ID:pW3jV0rpa.net] ぱいそんってアメリカではもっともメジャーなスクリプト言語なんだっけ
648 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 18:15:03.66 ID:fX+okHt3M.net] 何故にPythonかと思ったらエクセルにPython組み込むって話が出てるんだな。勉強するか‥
649 名前:デフォルトの名無しさん [2017/12/18(月) 19:14:05.94 ID:/veb4c2e0.net] >>628 自己評価だとそう感じるのかもしれないけど できる奴は最初からできるし、できない奴はいつまでたってもできない プログラムってそういうもん
650 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 19:34:37.55 ID:pW3jV0rpa.net] >>632 そりゃあ人によっちゃ違うが、それは才能があるからで近道しようとしてそうなってる訳じゃないだろ わかんないことがあったら別の切り口から攻めると言うのもありじゃないの
651 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 19:45:01.61 ID:au4G9Tq20.net] VBAerさんついに終わるのか Pythonに駆逐されちゃうね
652 名前:デフォルトの名無しさん [2017/12/18(月) 19:45:05.21 ID:/veb4c2e0.net] >>633 ないとは言ってないよ 俺が言いたいのは、別の切り口から攻めようが近道しようが 既知の問題の解決策は知識として身につくが 未知の問題に対する解決能力は上げることができないって事 つまり上達とか意識しないで楽なやり方ばかり選ぶ奴がいつだって一番賢い
653 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 19:51:30.63 ID:pW3jV0rpa.net] >>635 天才の人は苦にしないだけでちゃんと道は通ってるよ
654 名前:デフォルトの名無しさん [2017/12/18(月) 19:54:37.06 ID:/veb4c2e0.net] >>636 何を言いたいのかよくわからんがそもそも俺が言ってるのは天才のことじゃない 単にプログラムができる奴とできない奴の話なんだが
655 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 19:57:32.60 ID:pW3jV0rpa.net] >>637 iqないとダメなのはプログラムに限らんし まあスレチだから退散するわ
656 名前:デフォルトの名無しさん [2017/12/18(月) 20:01:42.20 ID:/veb4c2e0.net] >>638 いやだからIQとかの話じゃないってば 目の前の問題をありのままに受け入れる事ができる奴と 既に自分の中に構築された知識に当てはめないと解釈できない奴の違いだって
657 名前:デフォルトの名無しさん mailto:sage [2017/12/18(月) 23:11:06.58 ID:aXpCltYZ0.net] >>634 仮に採用されて皆がPython触るようになったら、今度はPython(笑)って扱いされる未来が見えるわ。 格好つけだけでやってる奴らが抜けて、AIとか作ってる真っ当なのが風評被害を受けそう。 言語は統一するよりも、それを扱うユーザー層毎に分けた方がいい。
658 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 12:28:53.96 ID:/mb664F4a.net] >>618 俺も似たようなの見たことがある。 でも引きずるような問題じゃ無かったと思う。 Excel再起動かPC再起動で直るんじゃね?
659 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 12:37:10.24 ID:pfZPHd/La.net] >>635 逆だと思うが。 未知の問題に対しての解決能力は上げることができる。 楽なやり方を選ぶ奴は上げられないだけ。 厳密には未知な問題といっても既知の問題と全く違うわけじゃない。
660 名前:デフォルトの名無しさん [2017/12/19(火) 16:48:29.82 ID:mNLh8c+i0.net] ここのやつらがあんまジャバジャバいうから引っ張り出して着たわ とりあえずコードは実行せずにパラ読みしようと思う https://i.imgur.com/peDAurF.jpg
661 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 17:01:17.86 ID:Bngslooy0.net] >>643 「わー、ロレックス持ってるなんてすごーい!」 「え?こんなの普
662 名前:ハだよ。持ってないとかwww」 みたいな展開になる事を期待してるんだろうけど腕時計の入れ方が無理やり過ぎて笑いしか出てこないw 本は中古屋で買ったみたいだし、あまりにもちぐはぐ過ぎてむしろ格を下げてるようにしか見えないんだが。 [] [ここ壊れてます]
663 名前:デフォルトの名無しさん [2017/12/19(火) 18:14:51.58 ID:J+VWEpvK0.net] >>642 うんだから最初に言ったんだけど自己評価だとそう感じるんだってば
664 名前:デフォルトの名無しさん [2017/12/19(火) 19:02:39.42 ID:mNLh8c+i0.net] JAVAの本でわかったこと 変数の宣言と同時に値を入れることを初期化という 変数の値が変わらないことを定数という いま10ページ目だけどこんくらいだわ
665 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 19:57:29.94 ID:9tP52mqX0.net] >>646 >変数の値が変わらないことを定数という これはちょっと違うのでは?
666 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 20:25:43.13 ID:fLKwjLgZa.net] >>645 お前の自己評価がそう感じてるだけだろw 何か自分はプログラム書ける気になってるようだけどw
667 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 21:14:28.27 ID:4AWSTK/ra.net] 変数の初期かもなんかむずむずする理解だな
668 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 21:15:04.92 ID:4AWSTK/ra.net] あ、でも彼はジャワティーの話をしてるのか ならわからんでもない
669 名前:デフォルトの名無しさん [2017/12/19(火) 21:26:16.08 ID:mNLh8c+i0.net] javaのパスが通らなくて実行できない 助けてくれ
670 名前:デフォルトの名無しさん mailto:sage [2017/12/19(火) 23:45:33.30 ID:jfHXMkXp0.net] Java は環境構築が難しいから、初心者には無理 paiza.IO, codepad などのサイトで、ブラウザから実行しろ
671 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:20:41.41 ID:USwfdD4Y0.net] 別にJavaが難しいと感じたことはないな。 すっげえ昔にかじっただけだから今となっては初心者以下だけど。 いや、当時も初心者だったけど。
672 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 00:28:51.85 ID:USwfdD4Y0.net] コンパイラもJavaで出来てるからJava実行環境でコンパイラ動かして、そのコンパイラへの引数にエディタで編集中のテキストを一時ファイルにしたものを渡してたな。 そのエディタもJavaで誰かが作ったものを機能拡張したやつだったな。
673 名前:デフォルトの名無しさん [2017/12/20(水) 00:40:50.45 ID:xfg3gakwa.net] コマンドラインが敷居高いならeclipseでやれ 敷居高いつっても環境変数設定してそこにパス通すだけだがな
674 名前:デフォルトの名無しさん [2017/12/20(水) 01:00:50.98 ID:sohN4awK0.net] javaって効率悪すぎだろ テキストエディタで編集 ↓ 名前つけて保存 ↓ コマンドプロンプトでコード入力 ↓ 実行 どんだけ時間かかるんだよ
675 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 08:24:00.28 ID:TZHE5kKsa.net] いやeclipse使えよ
676 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 09:28:33.38 ID:FRuTBLwYp.net] これ以上はスレ違いなのでJavaスレでどうぞ
677 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 09:36:49.97 ID:GPFg9WZwx.net] eclipseも知らないで手動でコンパイルしながらブチキレてるの想像してワロタ 道は遠いね
678 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 12:25:53.38 ID:Vi8ViNgtd.net] スレチ
679 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 12:41:32.07 ID:/dU/ndoRa.net] お前ら良かったな EXCELでPythonが使えるようになるかも知れないんだって? あれはObject指向の流れを組む関数型を目指しているところの言語っていうからやりがいはあるよね 俺もVB.NetやC#はやったけど EXCELに載ることが確定したらこれからPython覚えるわ まぁ構造化言語からObject指向型言語に移行したとき めちゃくちゃ苦労したけど 今回も苦労するんだろうなぁ
680 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 13:38:58.93 ID:/fbzm/vOa.net] Pythonはさらっと概要見たぐらいだけど面白そうだね まあexcelにのらなくても勉強して損にはならんだろうな
681 名前:デフォルトの名無しさん [2017/12/20(水) 15:31:22.90 ID:EAMpcVD20.net] 必要ないもん勉強したって時間のムダだっつーの 真のエ
682 名前:Nセルマクラーだったらマクロ書くのにパイソンしか使えなくなった時に必死でググれ [] [ここ壊れてます]
683 名前:デフォルトの名無しさん [2017/12/20(水) 16:07:26.91 ID:/h7jUJynd.net] 今のままでも関数型で出来るらしいが https://qiita.com/matumoto_onga/items/7adfd4cf48288c477901
684 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 18:29:06.12 ID:khkAeR460.net] Pythonはオブジェクト指向も関数型も全部後付けって感じでイケてねえ F#にしとけって でもこんなのはプログラマ以外が触るものだからしょうがないのかもな
685 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 19:00:00.85 ID:sxNo8wqUa.net] >>665 F#ってまだ生きてんのか!
686 名前:デフォルトの名無しさん [2017/12/20(水) 19:51:25.83 ID:7WhairgWd.net] 生きてるし、活発に使われてるよ ソースはない
687 名前:デフォルトの名無しさん mailto:sage [2017/12/20(水) 20:52:44.38 ID:EAMpcVD20.net] ソースはないソースはよ
688 名前:デフォルトの名無しさん [2017/12/21(木) 23:06:47.24 ID:1PuX0k7mM.net] 100列ぐらい続く計算エクセルがある 足したり引いたりするだけのエクセル。 酷くね?VBAにできないものか
689 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 02:00:09.18 ID:T3zOnX2zx.net] >>669 計算エクセルっていう表現が意味不明だが要は計算用のワークシートのことか? 大抵の場合、ワークシート関数とテーブル機能を組み合わせて何とかする方がVBA使うより楽だぞ 車輪の再発明をしてもしょうがないからな
690 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 04:21:53.41 ID:0EXQoFbJ0.net] 質問です。 Excel側からVBE上の指定のプロシージャ記述欄にジャンプする動作をVBAで記述できる でしょうか? やり方がわからずとりあえずSendKeysを組み合わせて動作するようになったのですが 不慮の事故が起きそうで怖いです。 VBEのオブジェクトモデルに沿ったアクセス方法があれば教えていただけないでしょうか。
691 名前:デフォルトの名無しさん [2017/12/22(金) 07:49:35.63 ID:BCzwPGy5d.net] >>671 VBE上でカーソルの位置をコントロールするってこと?
692 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 11:50:10.85 ID:7Q1lZFEo0.net] >>672 メンテのためにActiveBookから全Procのリストを新規Sheetに出力する Procedureを用意したのですが、Proc名からVBE上の該当Procにジャンプ したく、右ClickEventにジャンプ機能を割り当てました。 正しいアクセス方法がわからないので、ほぼSendKesyのみで記述している のですが、状況により意図しない挙動をします。 VBEを開く動作は "^{F11}"の代わりに Application.CommandBars.FindControl(ID:=1695).Execute が使えそうなことはわかったのですが、、、 VBE上で1つもModuleが開かれていなかったり、開かれているModuleと、ツリー 側の選択されているModuleが異なったりすると、"^F"が効かないようです。 FrontEndからではなく、ObjectModelに沿ったBackEndからの操作が 知りたいのですが、うまく情報を見つけられないところです。
693 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 12:58:52.19 ID:7Q1lZFEo0.net] >>671 自己解決しました。 キーワードを英語に切り替えてGGったら、StackOverFlowですぐ見つかりました。 .CodePane.GetSelection .CodePane.SetSelection あたりでなんとかなりそうです。お騒がせしました。
694 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 17:40:48.08 ID:3J82DkVga.net] VBAやりはじめて三年ぐらいだけど、For Eachで普通の配列もループできるの今日知ったわ コレクションだけだと思ってた
695 名前:デフォルトの名無しさん [2017/12/22(金) 18:05:37.66 ID:/KqbyaeQd.net] >>675 値の取得だけで設定はできないけどねー
696 名前:デフォルトの名無しさん mailto:sage [2017/12/22(金) 18:16:05.21 ID:3J82DkVga.net] >>676 クラスの扱いが大分変わるのよ わざわざイテレータ自作してたわ
697 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 00:05:26.91 ID:/nzAEvVba.net] >>674 できるんだけどセキュリティ的に問題だからお勧めしない。 .netで書いた方が良いぞ。 でもVBEを操作するコードが書ければ、.net上でも殆ど同じコードでいけるから勉強しとくと良いかな。 [] [ここ壊れてます]
699 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 06:34:44.47 ID:F3cHZlpp0.net] sheet1に置いたボタンを押してからsheet1内のセルをクリックすると、クリックしたセルに「ここ」 とはいるようにしたいです。実際作りたいものはもっと複雑ですが、とりあえず。 そこで、sheet1のシートモジュールに以下の記述をしました しかし、どうやら前回クリックしていた場所を覚えていて、その場所に「ここ」と入ってしまいます 解決法はありますか? Private Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Integer Private Sub CommandButton1_Click() Do If GetAsyncKeyState(VK_LBUTTON) Then ActiveCell.Value = "ここ" Exit Do End If Loop End Sub
700 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 06:43:21.92 ID:F3cHZlpp0.net] >>679 で書き忘れ 標準モジュールの宣言部に Public Const VK_LBUTTON = &H1 の記述もしてあります。