• 締切済み

エクセル マクロmsgbox

C5から2列に亘りデータが入っている場合に、 以下のようなものつくろうとしているのですが、 うまく作動しません。 MsgBox Range("C5").CurrentRegion.Value, Title:="抽出" どなたか教えて頂けますでしょうか?

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

要は拾ってくっつけていけばいいだけなので,まぁどうやっても出来ます。 一番ベタな方法: 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)
回答No.2

何をしようとしているのか、質問に文章で説明すること。 初心者なのだろうが、勝手なコードを書いても、やりたいことを推測も出来ない。 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)
回答No.1

何故、そんなことをする必要があるのか疑問です。 文字列に纏めます。 うろ覚えですが表示文字数に制限があったように思います。 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:="抽出"

関連するQ&A