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)
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 の記述もしてあります。
701 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 07:46:11.28 ID:8SavP0Th0.net] >>679 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 Then Target.Value = "ここ" End Sub クリックした場所に入れるだけならSheet1モジュールにこれで済むけど、コルーチン処理が必要というなら分からん。 いずれにしてもActiveCellとかActiveSheetとかは避けて設計すべき。
702 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 07:56:20.90 ID:F3cHZlpp0.net] >>681 自分もググってたどりついた先がそれだったんですよね でも常に発動してる状態だとやっぱり困るんですよ 一応application.enableevent を使って停止しておくこともできるようなので、 通常は停止しておくことも考えてはいます 設置したボタンを押したときだけ機能するようにしておけばいいのかな、と。 Worksheet_SelectionChange使う以外方法がなければそうするしかないですが 無効にしてる間はイベントが一切反応しなくなるという事なので、 イベント付きの他のブックを併用するようなケース等で問題が起きそうで迷ってます
703 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 08:00:18.36 ID:8SavP0Th0.net] >>682 なら If ToggleButton1.Value Then とか加えておけばいいだけでは?
704 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 08:11:12.55 ID:F3cHZlpp0.net] >>683 お・・これはいけそうです こういう使い方があるんですね・・・ 作業を先に進められそうです ありがとうございました
705 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 10:35:36.95 ID:oVsH3Gmz0.net] フォームコントロールボタンの文字の色を変えたいんだけど セレクトしない方法はないのですか? Sub test01() n = Worksheets("Sheet1").Shapes("Button 1").Name Worksheets("Sheet1").Shapes(n).Select Selection.Font.ColorIndex = 3 End Sub
706 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 10:51:51.14 ID:YCHexesv0.net] フォームコントロールボタンの文字の色を変えたいんだけど セレクトしない方法はないのですか? Set n = Worksheets("Sheet1").Shapes("Button 1") n.Font.ColorIndex = 3 みたいな?
707 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 13:25:10.14 ID:Zcbsqwvta.net] シート上のボタンならtoggleにしなくてもモジュールレベルのクリックフラグ変数で管理できねーか?
708 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 13:35:38.33 ID:8SavP0Th0.net] >>687 出来合いのものを、わざわざ回避する利点は?
709 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 15:32:28.22 ID:tRk+L7lt0.net] >>688 いや、最初コマンドボタンだったからコマンドの方がいいのかなって思っただけ 別に必要無いなら必要無いでいいし
710 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 18:23:21.18 ID:3q2JAS6ba.net] >>686 逆に何でセレクトしなきゃならんのかが分からん。 普通セレクトなんてしないだろ。
711 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 18:24:04.16 ID:3q2JAS6ba.net] すまん。 >>685 向けね。
712 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 19:38:10.94 ID:DrTFst260.net] >>685 Worksheets("Sheet1").Shapes("Button 1").TextFrame.Characters.Font.Color = vbRed または Worksheets("Sheet1").Buttons("Button 1").Font.Color = vbRed SelectするとButtons("Button 1")をオブジェクトとしてSelectionに持つので Selection.Font.Color = vbRed でいける 一方、ShapesはFontオブジェクトをもっていないので Fontオブジェクトを持っているヤツまで掘り下げてかなければダメ ということだと思う。
713 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 19:53:54.32 ID:AF0984djx.net] >>692 直感的な説明だが、オブジェクトがオブジェクトを持つという表現は間違い オブジェクトが持つのはあくまでメソッドとプロパティからなるメンバで、いわゆる下位オブジェクトにはメンバを介してアクセスしてるだけだからな
714 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 20:15:31.85 ID:oVsH3Gmz0.net] >>692 マクロの記録でやってたので。1行で可能なのですね。 TextFrame.Characters.Font.Colorでググったら出てきました。 ありがとうございました。
715 名前:デフォルトの名無しさん mailto:sage [2017/12/23(土) 20:55:59.08 ID:afY4COyy0.net] ちなみにButtonsとかCheckBoxesとかは隠しプロパティ ヘルプにもでてこないからな なんで隠してあるのかねぇ
716 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 00:26:44.47 ID:oSJcOqyea.net] >>694 分かるよ。 そういう人がとても多いから。 でも、殆どの処理はセレクト無しで書ける。 個人的にはセレクト無しで書けない場合でも何とかセレクトせずに書けないかを考える。
717 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 00:45:00.70 ID:BN72T8jr0.net] まあ、大多数の用途では得られるメリットが少なすぎてSelectを消す意味は薄いけどな
718 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 01:23:50.46 ID:2PxYmIQzx.net] オブジェクトのプロパティにアクセスする処理でSelectメソッドはなるべく使わない コードの実行中にデバッグ作業を行ったときなどに予期しないオブジェクトが選択されて、アクセスしたいプロパティにアクセス出来ずエラーになることがよくあるからね Rangeオブジェクトを指定していたはずがShapeオブジェクトやOLEObjectオブジェクトを選んでいたりとか
719 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 01:43:15.08 ID:O2udkTbW0.net] Selectは必ず代替手段があるから、範囲選択してユーザーに注意を促すとかでなけりゃSelect使う事に疑問を持った方がいい。
720 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 06:22:03.30 ID:ZKd7S1fn0.net] 起動中のIEからさらに別窓で開かれるフォーム入力用窓のIEオブジェクトを取得して操作したいと考えているのですが、 Function hoge() As WebBrowser Dim tmp As Variant For Each tmp In CreateObject("Shell.Application").Windows If TypeName(tmp.document) = "HTMLDocument" Then Set hoge = tmp Exit Function End If Next tmp End Function のようにShellを使ってもIEオブジェクトを取得できなくて困っています Set objIE = MAGIC(hWnd) のような形で、ハンドルからIEオブジェクトを取得する方法は無いでしょうか 他に方法があれば、ハンドルから取得する方法にこだわりません ただし、諸事情により外部からライブラリをダウンロードしてきて使用する、といったことはできないです
721 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 08:15:14.57 ID:BN72T8jr0.net] >>700 別窓かどうかの判定が抜けてる LocationNameとかLocationURLあたりを調べないと