- 1 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 19:07:54 ]
- ExcelのVBAに関する質問スレです
前スレ pc12.2ch.net/test/read.cgi/tech/1241885130/ ★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。 ★2 ExcelのVBA以外の部分に関する質問はNGです。 但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。 ★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。 VBAとは、『Visual Basic for Application』の略で Application ├Workbooks |└Workbook | ├Worksheets | |└Worksheet というApplication以下のオブジェクトを、VB言語で操作するものを指します。 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。 ★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。 ★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。 ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。 ★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)
- 495 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 18:16:48 ]
- マクロの記録をすると
Columns("C:E").Select ってでてくるよ >>492 "3:" & c &は文字の結合だから
- 496 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 18:19:09 ]
- Columns("3:5").Selectって記録マクロでできるか?
Range("3:5").SelectとかRange("3:5").Selectならわかるが、Columns("3:5")は動かんなぁ。 記録マクロが動かんマクロになるわけないと思うが。
- 497 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 18:20:03 ]
- 493で答え出とるがな
- 498 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 18:20:14 ]
- すまん、Range("3:5").SelectとかRows("3:5").Selectの間違い。
- 499 名前:492 mailto:sage [2009/08/15(土) 18:22:07 ]
- すいません。
僕のは間違えです。
- 500 名前:486 mailto:sage [2009/08/15(土) 19:17:25 ]
- >>495 へのレス
>>490 >>495 は同一人物だと仮定してレスします 別人だったらすみません。 >>490 >マクロの記録には、 >Columns("3:5").Selectと出てきます。 >>495 >マクロの記録をすると >Columns("C:E").Select >ってでてくるよ なんかレス番によってマクロの記録結果が違っているのですが.... Columns("3:5").Select って本当に記録された?
- 501 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 20:07:43 ]
- ヒント 列と行を広辞苑で調べてみようっ!
- 502 名前:デフォルトの名無しさん [2009/08/15(土) 21:34:46 ]
- オブジェクトやプロパティやメソッドの検索の基本的なやり方を教えて頂きたいです。
オブジェクトブラウザ インテリジェンス ウォッチ ヘルプ、MSDN、Google 等々ありますが、これらの強み弱み、表示できない事、表示できる事を、 上手くまとめて頂けないでしょうか。 ウォッチでは実行時のプロパティーは表示されるけど、 何故か一部のプロパティーが表示されないし、 メソッドは当然の如く表示できません。 オブジェクトブラウザやインテリジェンスは、 実行時系プロパティーが当然取れません。 隠しオブジェクトについては、表示する様にすれば表示できますが。 ヘルプは実行時系も隠しもメソッドも全てあると思いますが、 検索性に難ありで、網羅性や信頼性に疑いを持ってしまう所アリ。 間違いがあったり、足りない所があれば教えて頂きたいです。 アーリーバインディングやレイトバインディングとか、 その辺りとの関わりも良く分かって無いです、 教えていただけると助かります。
- 503 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:32:48 ]
- 宿題は自分で頑張ってね。
- 504 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 22:34:06 ]
- >>502
ググレカス
- 505 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:30:05 ]
- 質問です
一つ目 選択範囲のセルをオブジェクト変数に代入するにはどうすればよいでしょうか? Dim aaa aaa = Selection としてもaaaにはvalueしか入らず、文字列の配列になってしまいます。 二つ目 選択範囲の全てのセルに対し、 長さが5じゃなければそのセルに文字列""を代入するというコードを書いてみましたが aaa = "" の行で「実行時エラー'10' この配列は固定されているか、または一時的にロックされています」 というエラーが出ます。どういう風に書けばよいのでしょうか? また、aaaの文字列の配列に直接値を入れたとしてもselectionに反映されません。これもどうすればよいのでしょうか? 勉強中に作ってみたものなので、特にこのコードを使って何かを処理するわけではありません。 コレクションをうまく使ってみたいと思っています。 よろしくお願いします。 Sub a() Dim aaa Dim m aaa = Selection For Each m In aaa If Len(m) <> 5 Then aaa = "" End If Next End Sub
- 506 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:51:17 ]
- >>555
Sub test() Dim rng Set rng = Selection For Each cell In rng If (Len(cell) <> 5) Then cell.Value = "" End If Next End Sub
- 507 名前:デフォルトの名無しさん mailto:sage [2009/08/15(土) 23:55:21 ]
- >>506
おお、すごい!ありがとうございました
- 508 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 00:34:34 ]
- >>505 はオブジェクト指向の考え方を一度学んだ方が良いと思う
今後も、できねー、なんで?を連発の予感
- 509 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 00:37:25 ]
- dimで宣言するなら型までだな
- 510 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 00:39:51 ]
- >>509
同意 更に option explicit を入れないと何となく動くけど、変なエラーが・・・になる
- 511 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 00:46:42 ]
- C使ってるとこの表現忘れがちになるな
俺だけかな
- 512 名前:415 mailto:sage [2009/08/16(日) 08:44:11 ]
-
既に目を通してくれた方には煩わしいかもしれませんが 未解決のまま流れているので再投させていただきます。 オートシェイプに背景画像を挿入する場合についての質問です。 手動でやる場合、 ・オートシェイプの書式設定 ・塗りつぶし ・色 ・塗りつぶし効果 ・図 ・図の選択 で、画像を挿入した際に、同ページに □図の縦横比を固定する □図形に合わせて塗りつぶしを回転する というオプションがありますが、このオプションをVBAで変更する方法を教えてください。 マクロの記録をしても、変更が記録されずに困っています。 WindowsXP/Office2003
- 513 名前: [―{}@{}@{}-] デフォルトの名無しさん mailto:sage [2009/08/16(日) 09:01:18 ]
- drawingobjectでどうだ
|

|