今考えていることをまとめたり表現する -10ページ目
<< 前のページへ最新 | 6 | 7 | 8 | 9 | 10

Range(.Cells(a,b),.Cells(c,d))

変数などによって可変するセル番地を指定したいとき、Cellsプロパティをうまく使います。

ただし、複数範囲のときはこれだとうまくいきません。


そこで、Rangeプロパティの中で


「Range(.Cells(a,b),.Cells(c,d))」


と使うわけですが、このときCellsのまえの「.(ピリオド)」に注目!

この「.(ピリオド)」がなくても動いてくれますが

いっぱいあるCellsの中から探そうとするので

ときどきうまくいかないときがあるみたいです。


そこで、


「Range(Workbooks("a.xls").Worksheets("b").cells(a,b),Workbooks("a.xls").Worksheets("b").cells(c,d))」


して、ブック名シート名を指定してやれば大丈夫。

しかし、これではまどろっこしいです。

だからWithで囲ってやればいいのです。


【使用例】

With Workbooks("aa.xls").Worksheets("bb")

.Range(.Cells(m, 9), .Cells(m + 2, 104)).ClearContents

End With

ThisWorkbook

オブジェクト名を指定するとき

「Workbookオブジェクト.Worksheetオブジェクト.Rangeオブジェクト.」

といった具合にコードを書いていきますが、


いま記述しているVBAで、自分のワークブック名を読んでほしいときが多々あります。



ThisWorkbook


を使います。



これまではいちいちコードのブック名を変えていました。


自ブック名「chemeetday.xls」の場合

Workbooks("chemeetday.xls").Worksheets("chemeetday")。。。。

といった具合です。


これに疲れて、考えた方法が、

ファイル名を自ブックどこかのセルに呼び出して、そのセルを読む方法。

これも少し手間だったがThisWorkbookで解消。


【使用例】

ThisWorkbook.Worksheets("aa").Cells(m, 3).PasteSpecial Paste:=xlPasteValues

With ThisWorkbook.Worksheets("bb")



はじめまして

ブログというものを始めたのはこれで2回目です。


前も、ちょっとやってたんですが、更新頻度が低くなり、日記をmixiで書くようになったので、放置状態。

ここでリスタート切りたいと思います。


仕事ではエクセルに触れる機会が多く、毎日新しい発見があります。

そこでのことを書き留めていくのが目的です。


とりあえず、これではじめます。



今後それに加わっていく可能性があるのは、


ドラム

F1


と自分が興味があることですね。


まぁ、あまりルールを決めずに、自分のペースでやっていきたいです。


<< 前のページへ最新 | 6 | 7 | 8 | 9 | 10