Excel VBA質問箱 IV

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

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


45353 / 76732 ←次へ | 前へ→

【36372】Re:プラスマイナスの値の抽出
発言  ichinose  - 06/3/30(木) 7:06 -

引用なし
パスワード
   ▼ponpon さん:
おはようございます。


>>このシートのJ列に
>>
>>   J
>>1  150
>>2  160
>>3  170
>>4  180
>>5  190
>>6  
>>
>>
>>コンボボックスの入力範囲として $J$1:$J$5
>> リンクするセルとして $J$6
>>
>>と設定されているとします。
>>
>>この場合は、
>>
>>  stdval = 150
>>
>>の箇所を
>>
>>  stdval = Range("offset(j1,j6-1,0,1,1)").Value
>>
>
>ここのところが分かりませんでした。
>
>  stdval = Range("offset(j1,j6-1,0,1,1)").Value
>
>この"offset(j1,j6-1,0,1,1)"は、どんな意味なのでしょうか?
>何をヘルプで調べるとよいでしょうか?

これは、ワークシート関数のOffsetですよ。
Offset関数は、セル範囲の参照を返す関数ですから、

例えば、

Sub test()
  MsgBox Range("j1:j5").Address & "===" & Range("offset(j1,0,0,5,1)").Address
  MsgBox Range("j4").Address & "===" & Range("offset(j1,3,0,1,1)").Address

End Sub

を実行するとわかりますが、
Range("J4") は、 Range("offset(j1,3,0,1,1)")と記述出来ます。

コマンドバー「フォーム」のコンボボックスで

>>コンボボックスの入力範囲として $J$1:$J$5
>> リンクするセルとして $J$6

と設定すると

offset(j1,j6-1,0,1,1)

がコンボボックスが選択した値に該当するセルを
参照していることを理解してください。

"j4"がセル参照の記述で

Range("j4")と記述出来るのですから,

同じセル参照の"offset(j1,3,0,1,1)"が

Range("offset(j1,3,0,1,1)")と記述出来ることも理解してください!!

よって、

  stdval = Range("offset(j1,j6-1,0,1,1)").Value

が有効と言うことになります。

因みに上記は

  stdval = Range("index(j1:j5,j6,1)").Value

なんて記述もできます(Indexもワークシート関数です)。

確認してみて下さい
0 hits

【36352】プラスマイナスの値の抽出 とろり 06/3/29(水) 19:12 質問
【36353】Re:プラスマイナスの値の抽出 Hirofumi 06/3/29(水) 20:12 回答
【36354】Re:プラスマイナスの値の抽出 ichinose 06/3/29(水) 20:14 発言
【36355】Re:プラスマイナスの値の抽出 とろり 06/3/29(水) 20:31 質問
【36356】Re:プラスマイナスの値の抽出 Hirofumi 06/3/29(水) 20:44 回答
【36357】Re:プラスマイナスの値の抽出 ichinose 06/3/29(水) 20:49 発言
【36358】Re:プラスマイナスの値の抽出 とろり 06/3/29(水) 21:02 質問
【36361】Re:プラスマイナスの値の抽出 ichinose 06/3/29(水) 22:07 発言
【36367】Re:プラスマイナスの値の抽出 ponpon 06/3/29(水) 23:02 質問
【36372】Re:プラスマイナスの値の抽出 ichinose 06/3/30(木) 7:06 発言
【36373】Re:プラスマイナスの値の抽出 ponpon 06/3/30(木) 7:32 発言
【36359】Re:プラスマイナスの値の抽出 Kein 06/3/29(水) 21:15 回答

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