Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1505 / 13645 ツリー ←次へ | 前へ→

【73977】別シートのセルを参照する関数を 青とうがらし 13/3/30(土) 4:00 質問[未読]
【73979】Re:別シートのセルを参照する関数を UO3 13/3/30(土) 6:56 発言[未読]
【73983】回答ありがとうございます 青とうがらし 13/3/30(土) 15:53 お礼[未読]

【73977】別シートのセルを参照する関数を
質問  青とうがらし  - 13/3/30(土) 4:00 -

引用なし
パスワード
   お願いします。

あるシートから K箱 というシートのセルの内容を見られるよう
関数を置いていきたいと思っています。

具体的には

あるシートのB4 B10 B18 ・・・といったセルに

=K箱!A3 =K箱!A7 =K箱!A11  という関数を順番に置いていきたい
と思ってます。そこで考えたコードは

  For X = 0 To 8
  Cells(4 + 6 * X, 2).FormulaR1C1 = "=' B箱 '!R[-1 + 6 * X][C[-1]"
  Next X


とマクロ記録を参考にしながら考えましたが
アプリケーションかプロパティエラーが出てそこから進めません。

どうかアドバイスお願いします。

Win7とエクセル2010を使っています

【73979】Re:別シートのセルを参照する関数を
発言  UO3  - 13/3/30(土) 6:56 -

引用なし
パスワード
   ▼青とうがらし さん:

おはようございます

アップされたコードだけにコメントします。
2つの間違いがあります。

1.これはケアレスミスでしょうけど、[C[-1] 。シート上で書くときには 先頭の [ は つけませんよね。
2.根本的には、変数と固定値を連結して文字列を作る際のやりかたの間違いがあります。
  (結構、面倒なもので、私も、しょっちゅう間違えてコンパイラーにしかられます)

  "○○○" と " でくくったものは、その記述された文字が全て文字列になります。
  で、この○○○ が r1c1形式の式の文字列としてセルに書き込まれエクセルに渡されようとします。
  -1 + 6 * X こういった文字も、渡される式の文字列になります。
  そうしますと、エクセルから見ると、x って何? ということになってしまいます。

  変数と固定値は分けて & で 連結する必要があります。いろんな記述の方法がありますが
  たとえば

  Cells(4 + 6 * x, 2).FormulaR1C1 = "=' B箱 '!R[" & (-1 + 6 * x) & "]C[-1]"

【73983】回答ありがとうございます
お礼  青とうがらし  - 13/3/30(土) 15:53 -

引用なし
パスワード
   UO3 さん、早速のお返事ありがとうございました。


>  変数と固定値は分けて & で 連結する必要があります。
>いろんな記述の方法がありますが

>  Cells(4 + 6 * x, 2).FormulaR1C1 = "=' B箱 '!R[" & (-1 + 6 * x) & "]C[-1]"

そんな理由だったとは、ちょっと驚きました。

文字列と変数を&で分ければいいのなら
R1C1形式使わず、もっと簡単な式を使えるかもしれません。


色々試してみたいと思います。

1505 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free