プロが教える店舗&オフィスのセキュリティ対策術

C5から2列に亘りデータが入っている場合に、
以下のようなものつくろうとしているのですが、
うまく作動しません。

MsgBox Range("C5").CurrentRegion.Value, Title:="抽出"

どなたか教えて頂けますでしょうか?

A 回答 (3件)

何故、そんなことをする必要があるのか疑問です。



文字列に纏めます。
うろ覚えですが表示文字数に制限があったように思います。

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:="抽出"
    • good
    • 0

何をしようとしているのか、質問に文章で説明すること。


初心者なのだろうが、勝手なコードを書いても、やりたいことを推測も出来ない。
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
で何をしたいのか。これで抽出になると思うのか。
    • good
    • 0

要は拾ってくっつけていけばいいだけなので,まぁどうやっても出来ます。



一番ベタな方法:
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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!