教えて! goo のコンテンツに対する取り組みについて

シート1のA列に200行ほどいろんな値が入っています。
その列でセルを選択して、シート2へ書き出したい。


一つのセルを選択した場合は、そのままシート2へ書き出す。
複数のセルを選択した場合はカンマで区切って書き出す。
書き出す位置はシート2のD3セルです。

マクロのコードを教えてください。

gooドクター

A 回答 (3件)

こんな感じ。


シート1 をアクティブにして実行する。

Sub Sample()
 Dim a As Range
 Dim c As Range
 Dim s As String
 Set a = Application.Intersect(Selection, Range("A:A"))
 If Not a Is Nothing Then
   For Each c In a
   s = s & "," & c
  Next
 End If
 Worksheets("シート2").Range("D3").Value = Mid(s, 2)
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2021/10/06 09:32

こんにちは


>マクロのコードを教えてください

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Dim r As Range, strVal As String
If Selection.Count > 1 Then
For Each r In Selection
If strVal <> "" Then
strVal = strVal & "," & r.Value
Else
strVal = r.Value
End If
Next
Worksheets("シート2").Range("D3").Value = strVal
Else
Worksheets("シート2").Range("D3").Value = Selection.Value
End If
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます!

お礼日時:2021/10/06 09:32

こんにちは。



Excel VBAで、必要と思われる例題(関数)を幾つか載せておきます。
それらを使って、試しに作ってみられたらと思います。

セル参照の入力(セルを選んだ後、OKを押すとセルの範囲を取得)
https://excel-ubara.com/excelvba1/EXCELVBA400.html

選択したセルの個数を数える
http://excelnavi.livedoor.biz/archives/2709501.h …

IF関数(セルの個数が1個か、2個以上か?を判断する)
https://www.tech-teacher.jp/blog/vba-if/

TEST3の全セルをループ(2個以上なら、)
https://daitaideit.com/vba-range-for-each/

コンマ区切りで結合(文字を、","で結合)
https://daitaideit.com/vba-char-join/#mokuzi1-3
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2021/10/06 09:32

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング