3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

標準形式かR1C1か、RangeかCellか

2011年11月5日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

エクセルマクロ・VBA達人養成塾 小川です。

キューバ旅行記、その18です。

エクセルマクロ達人養成塾塾長ブログ-SOCIALISMOとは、社会主義、社会主義運動の意。

SOCIALISMOとは、社会主義、社会主義運動の意。

街中のいたるところに、こういうスローガン的な文言の書かれた壁、看板等を見かける。

現地の人たちは、横断歩道もないところで、車の通る道をどんどん渡る。

エクセルマクロ達人養成塾塾長ブログ-学校。

学校。

エクセルマクロ達人養成塾塾長ブログ-JUNTO A FIDEL Y RAUL REVOLUCION

JUNTO A FIDEL Y RAUL REVOLUCION

「フィデル、ラウルと一緒に – 革命」

フィデルは、ついこの間まで国家元首だったフィデル・カストロ。ラウルは、一緒に革命に参加したその弟で、今の国家元首、ラウル・カストロのこと。

塾長のキューバ旅行記、最初から読みたい方はこちらから


標準の形式 vs R1C1形式

エクセルに関して、ときどき出てくる議論。

エクセルの列名表記は、「標準の形式がいいのか、R1C1形式のほうがいいのか」。
これに、「では、マクロを書くときには?」という話が絡むと、さらにややこしくなるよう。
僕も、ときどき意見を求められるのですが…。
僕の意見としては、「標準形式で、いいんじゃない?」という感じです。
R1C1形式にするメリットがあるとすると、

○各列が、左から何列目にあるのかを直感的に理解しやすい

ということのようですが。
どの列が左から数えて何行目か知りたければ、以下のコードでいつでも知ることができる。

Sub hoge()

    Debug.Print Range(“F1”).Column

End Sub

あと、ついでに書くと、横への連続計算をするときに簡単なので、セルを指定するときには、Range より Cells を使いましょう、という人もいるが、僕は、 Range を使っています。

セミナーで教えるときも、 Range です。

何故かというと。

別シートにあるセルを指定するときの記載が容易というのもあります。

以下の例では、同じ、シート3のセルA1~B3に値を設定しようとしています。

どちらのほうが、見た目、書きやすそうでしょうか。

Sub cellget()

Worksheets(“Sheet3”).Range(“A1:B3”).Value = 5

Range(Worksheets(“Sheet3”).Cells(1, 1), Worksheets(“Sheet3”).Cells(3, 2)).Value = 3

End Sub

「Cellsを使うと横方向へのくり返しができる」というのも、Cellsを使うメリットとして言われる方もいますが、 .Offset を使えば、Rangeでも可能です。

以下の要領。

Sub yoko()

Dim c As Integer

For c = 0 To 10

Range(“A5”).Offset(, c).Value = 1

Range(“A6”).Offset(, c).Value = 2

Range(“A7”).Offset(, c).Value = 3

Range(“A8”).Offset(, c).Value = 4

Range(“A9”).Offset(, c).Value = 5

Next

End Sub

もっとも、「横方向へのくり返しを大量に行うエクセル表がある」というような場合だと、そもそも、マクロ以前に、そのエクセル表を使った業務プロセス自体に問題があるケースがほとんどです。

エクセルマクロ・VBA達人養成塾、12月末~3月までの日程を追加しました。

年末特訓も用意しています。

キーワード

コメント

コメントを残す

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

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド