No.1ベストアンサー
- 回答日時:
こんばんは。
>(A列で黄色くいろ塗りしたら、リアルで即、B列に反映した表示されるというものをイメージしているのですが、、、
確かに、それは可能なのですが、その設定は、もう少し複雑になります。それでも良ければ、ご提示いたします。つまり、以下のマクロコードを働かせるための、書式設定ボタンにイベントをつけることです。以下は、一応、対話モードになっています。
'標準モジュールに設定してください。
Sub ColorCollection()
Dim Data() As Variant
Dim c As Variant
Dim r As Range
Dim i As Long
Dim j As Long
'データ取得
SetStart:
On Error Resume Next
Set r = Nothing
Set r = Application.InputBox("色のついたセルを指定してください。", Type:=8)
If r Is Nothing Then Exit Sub
On Error GoTo 0
i = r.Interior.ColorIndex
If i = xlColorIndexNone Then
MsgBox "そこは、色つきできありません。", vbInformation: GoTo SetStart
End If
For Each c In Range(Cells(1, r.Column), Cells(65536, r.Column).End(xlUp))
If c.Interior.ColorIndex = i Then
ReDim Preserve Data(j)
Data(j) = c.Value
j = j + 1
End If
Next
PasteData r, Data()
Set r = Nothing
End Sub
Private Sub PasteData(rng As Range, Data() As Variant)
'データ貼り付け用のルーチン
Dim PasteRange As Range
Dim r As Range
Set PasteRange = Cells(1, rng.Column).Resize(UBound(Data()) + 1, 1)
If WorksheetFunction.CountA(rng.Offset(, 1).EntireColumn) = 0 Then
PasteRange.Offset(, 1).Value = WorksheetFunction.Transpose(Data())
ElseIf MsgBox("隣の列に上書きしてよろしいですか?", vbInformation + vbYesNo) = vbYes Then
rng.Offset(, 1).EntireColumn.ClearContents
PasteRange.Offset(, 1).Value = WorksheetFunction.Transpose(Data())
Else
On Error Resume Next
Set r = Application.InputBox("適当な列を指定してください。", Type:=8)
If r Is Nothing Then Exit Sub
On Error GoTo 0
Set PasteRange = Cells(1, r.Column).Resize(UBound(Data()) + 1, 1)
PasteRange.Value = WorksheetFunction.Transpose(Data())
End If
Set PasteRange = Nothing
End Sub
No.3
- 回答日時:
#2のimogasiさんへ
Wendy02です。
>セルに色づけされたという「イベント」を捉えるものはVBAレベルでないと思うので、不可能でしょう(#1のご回答がそれだったらすみません)。
#1の回答はそれではありません。クラスによるコマンド・ボタンへのイベントというテクニックになります。しかし、クラスによるイベントは、書式の設定のボタンが複数なので、設定が複雑で、作るほうはもちろんのこと、貼り付ける側も間違えて動かない、ということになりかねないので、紹介するのはやめました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの入力規則で2列表示したい
-
複数の文字列のいずれかが含ま...
-
数式が入ったセルを含めて、数...
-
SUMに含まれる範囲から特定のセ...
-
エクセル:横長の表を改行して...
-
スペースとスペースの間の文字...
-
別のセルに値が入力されたら、...
-
エクセルで小数を含む数値の抽出
-
セルをダブルクリックで、画像...
-
C列にF列の担当者(A〜)を順番...
-
エクセルでセルの値分の個数の...
-
エクセルで表示されている数字...
-
Excel上でのデータ数字が連番で...
-
エクセルにデータを入力すると...
-
EXCELで一行おきの平均を...
-
エクセルで1列全部10倍したい
-
文字(数字)色別に計算するには?
-
エクセルで住所の番地順に並べ...
-
「エクセル」特定の行(セル)...
-
エクセル セル内の文字数を超え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
数式が入ったセルを含めて、数...
-
SUMに含まれる範囲から特定のセ...
-
Excel上でのデータ数字が連番で...
-
列の数字に100をかけたい
-
スペースとスペースの間の文字...
-
エクセル:横長の表を改行して...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
エクセルで1列全部10倍したい
-
別のセルに値が入力されたら、...
-
HYPERLINKとADDRESSとMATCHの組...
-
エクセルで、毎日の走行距離(...
-
Excelのセル内文字の並び替えに...
-
エクセル セル内の文字数を超え...
-
エクセルのsumifでかけ算してか...
-
エクセルで小数を含む数値の抽出
-
時間を「昼間」と「夜間」に分...
-
EXCELの特定セルを編集不可・コ...
おすすめ情報