- 締切済み
エクセル マクロmsgbox
C5から2列に亘りデータが入っている場合に、 以下のようなものつくろうとしているのですが、 うまく作動しません。 MsgBox Range("C5").CurrentRegion.Value, Title:="抽出" どなたか教えて頂けますでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- keithin
- ベストアンサー率66% (5278/7941)
要は拾ってくっつけていけばいいだけなので,まぁどうやっても出来ます。 一番ベタな方法: sub macro2() dim res as string dim i as long for i = 5 to range("C65536").end(xlup).row res = res & cells(i, "C") & ", " & cells(i, "D") & vblf next i msgbox res, title:="抽出" end sub あるいは: Sub macro1() Dim res() As Variant Dim buf As Variant Dim Target As Range Dim i As Long, j As Long Set Target = Range("C5").CurrentRegion j = Target.Rows.Count ReDim res(1 To j) For i = 1 To j buf = Application.Transpose(Target.Rows(i)) buf = Application.Transpose(buf) res(i) = Join(buf, ", ") Next i MsgBox Join(res, vbLf), Title:="抽出" End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
何をしようとしているのか、質問に文章で説明すること。 初心者なのだろうが、勝手なコードを書いても、やりたいことを推測も出来ない。 Sub test03() MsgBox "A", "B" End Sub のような書き方は出来ない。 Sub test03() MsgBox "A", Title = "aaa" End Sub もタイトルにならない。 Sub test04() R2 = MsgBox("メッセージ", Title:="タイトル") End Sub のようなのは可能のようだ。 ーーー >Range("C5").CurrentRegion.Value で何をしたいのか。これで抽出になると思うのか。
- xls88
- ベストアンサー率56% (669/1189)
何故、そんなことをする必要があるのか疑問です。 文字列に纏めます。 うろ覚えですが表示文字数に制限があったように思います。 Dim c As Range Dim sdata As String For Each c In Range("C5").CurrentRegion sdata = sdata & "," & c.value Next sdata = Replace(sdata, ",", "", 1, 1) MsgBox sdata, Title:="抽出"