teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/11/05 09:02

投稿

mattuwan
mattuwan

スコア2167

answer CHANGED
@@ -13,4 +13,36 @@
13
13
  使っているセル範囲の内、
14
14
  黄色に塗りつぶしてあるセルの
15
15
  同じ列の1行目に「変更者」という文字を入力したい
16
- のでしょうか?
16
+ のでしょうか?
17
+
18
+ > mattuwanさんの仰る通りで、黄色のセル背景が存在する同じ列の1行目に「変更者」という文字を入力したいです!
19
+
20
+ 例えばこんな感じかと。
21
+
22
+ ```ExcelVBA
23
+ Sub test()
24
+ Dim c As Range
25
+ Dim r As Range
26
+ Dim s As String
27
+
28
+ Application.FindFormat.Interior.Color = vbYellow 'セルの書式の検索条件の設定
29
+ ActiveSheet.Rows(1).ClearContents 'シートの1行目をクリア
30
+
31
+ 'シート上の使っているセル範囲の列の集合の各列を順に見ていく
32
+ For Each c In ActiveSheet.UsedRange.Columns
33
+ Set r = Nothing '変数の初期化
34
+ Set r = c.Find(What:="*", SearchFormat:=True) '検索
35
+
36
+ '見つかったかどうかで結果を変数に記録
37
+ If Not r Is Nothing Then
38
+ s = "変更者"
39
+ Else
40
+ s = ""
41
+ End If
42
+
43
+ c.Cells(0).Value = s '変数の値をセル範囲の0番目のセルへ記入
44
+ Next
45
+ End Sub
46
+ ```
47
+
48
+ ※シート上の状態によってはエラーになるかも知れません。