Square Beat Engine

Blog for variety of things…

MS-Office

[Excel][VBA] ワークブック・ワークシートを明確に指定

投稿日:2014-12-21 更新日:

前々回前回に引き続き、セルに文字列を記入するときのコードについて考えてみます。
今回は、ワークブック・ワークシートを明確に指定する必要性を検討します。

なぜ指定するのか

セルの操作をする際、ワークシートを明確に指定しないと、アクティブなワークシートを対象に操作が行われることになります。
ワークシートをActivateすれば意図した通りに操作可能ですが、冗長です。

具体的な書き方

指定しなくとも正しく動く場合は問題ない、といいたいところですが、以下の理由から必ず指定するのが望ましいと思います。

  • コードの可読性が落ちる。
  • コードを拡張したときのバグの温床となる。
  • 必要なときに指定するのを忘れがちになる。

同じ理由から、ワークブックも指定しておけばよりよいでしょう。

 

コード例

ワークブックとワークシートを明確に指定し、セルの操作をする場合、以下のような感じとなります。

 まとめ

自動生成されたコードには、無駄が多いと言えます。
こんな単純な例でさえ、修正箇所がいくつもあるのです。
有用なマクロを作るためには、マクロ記録を活用しつつも、VBAの仕組み・ルールに則ったコーディングが必須だと思います。

以上!

-MS-Office

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[PowerPoint][VBA] スライド番号の挿入

自動的に番号が更新されるスライド番号をテキストボックスに挿入するには、以下のメソッドを使う。

注意点:Replaceによる解除 スライ …

[Excel][VBA] クリップボードを経由しないコピーを勧める理由

自分の作ったエクセルマクロには、クリップボード経由のコピーは皆無だ。 その理由はいたってシンプルだ。 クリップボードを使わない理由 自分がマクロでクリップボードを使わない理由はたった1つ。 「ほかの作 …

[Excel][VBA] Selectメソッドは99%不要

エクセルで、A1セルを選択した後、「abc」という文字列を入力することケースを考えてみます。 この操作をマクロに記録すると、以下のようなコードが生成されるでしょう。 [crayon-5cb9ade70 …

[Excel][VBA] 行列入れ替えを伴う値の転記

以前書いたように、エクセルで値を転記する場合は、クリップボードを経由せずにValueプロパティを使う方法を勧めている。 しかし、クリップボード経由だと簡単なのに、経由しない場合だと面倒なものがある。 …

[Excel][VBA] シートを新規ワークブックにコピーする方法

既存のシートからワークシートを新規シートにコピーする。 手動の場合は、新規ワークブックを選択するだけでよい。 VBAでは以下のメソッドを用いる。 コード例 [crayon-5cb9ade70b3483 …