Excel VBA質問箱 IV

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

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


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

【47201】選択範囲で関数を はこだ 07/3/5(月) 12:24 質問[未読]
【47208】Re:選択範囲で関数を Jaka 07/3/5(月) 14:36 発言[未読]
【47214】Re:選択範囲で関数を はこだ 07/3/5(月) 15:19 質問[未読]
【47226】Re:選択範囲で関数を Kein 07/3/5(月) 17:07 回答[未読]
【47229】Re:選択範囲で関数を はこだ 07/3/5(月) 17:39 お礼[未読]

【47201】選択範囲で関数を
質問  はこだ  - 07/3/5(月) 12:24 -

引用なし
パスワード
   お世話になってます。

今、B1〜D1、A1〜A15、B2〜D15にそれぞれのデータが入っています。

ここで、B2〜D15の中で選択範囲(例えばC5〜C8)したのみについて、C1&C5&A5、C1&C6&A6、C1&C7&A7、C1&C8&A8 というような関数を使いたいと思っています。
つまり、選択した範囲について、選択範囲に対応した行と列のセルとの関数を行う、という処理です。

関数の結果はまた範囲選択してコピーして別のシートに貼り付けたいと思っています。

選択範囲の取得やそれに対応したセルの取得など、どういう風に書けばよいか、教えて頂けますでしょうか?
よろしくお願いします。

【47208】Re:選択範囲で関数を
発言  Jaka  - 07/3/5(月) 14:36 -

引用なし
パスワード
   Dim Cel As Range
If TypeName(Selection) <> "Range" Then Exit Sub
MsgBox "全範囲 " & Selection.Address(0, 0)
For Each Cel In Selection
  MsgBox Cel.Address(0, 0)
  'MsgBox Cel.Row '← 行は、これで取れます。
Next

【47214】Re:選択範囲で関数を
質問  はこだ  - 07/3/5(月) 15:19 -

引用なし
パスワード
   ▼Jaka さん:
アドバイスありがとうございます。

本当に初心者なものですからせっかくのアドバイスを活かせておりません。的はずれな質問かと思いますが、選択範囲をMsgboxに表示させるのにはどのような意味があるのでしょうか?

選択範囲について、それに対応した関数による計算結果の出し方についても教えていただけると幸いです。
よろしくお願いします。

【47226】Re:選択範囲で関数を
回答  Kein  - 07/3/5(月) 17:07 -

引用なし
パスワード
   この質問の意味として「選択範囲は常に1列、その列の先頭行の値と、各行のA列
の値を引数とする関数を作る」ということでいいのかな ?
そうするとコードは基本的に・・

Dim C As Range
Dim Dt1 As Variant, Dt2 As Variant, Dt3 As Variant

If TypeName(Selection) <> "Range" Then Exit Sub
With Selection
  If Not Intersect(.Cells, Range("B2:D15")) Is Nothing Then
   If .Count > Intersect(.Cells, Range("B2:D15")).Count Then
     Exit Sub
   End If
   If .Columns.Count > 1 Then Exit Sub
  Else
   Exit Sub
  End If
  For Each C In .Cells
   Dt1 = Cells(1, C.Column).Value
   Dt2 = C.Value
   Dt3 = Cells(C.Row, 1).Value
   Debug.Print Dt1 & " : " & Dt2 & " : " & Dt3
  Next
End With

というようにして、イミディエイトウィンドウで確認してみて下さい。

【47229】Re:選択範囲で関数を
お礼  はこだ  - 07/3/5(月) 17:39 -

引用なし
パスワード
   ▼Kein さん:

アドバイスありがとうございました。
無事ほしいデータを作って、作業スペースへコピペすることができました。
イミディエイトウィンドウという便利なものの存在も知ることができ、とても勉強になりました。

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