• ベストアンサー

マクロ 色飛ばしマクロ

マクロ【色飛ばし】 御世話になります。 あるセルにある文字を入れるんですが、それが白色のセルなら普通にその文字を入れ、もし青色のセルだったらその隣のセルにその文字を入れる。だがまたそのセルが青なら・・・と白になるまで入れないマクロは作成可能でしょうか? 何か簡単なサンプルコードがあれば助かります。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.3

こんにちは。 質問の内容が良く分かりませんが、もしかして、シート上に入力した内容を 白色の時はそのままにして、入力セルが青色の時は、右側の白色セルに移すと言う事かな~ Private Sub Worksheet_Change(ByVal Target As Range)   Dim wR     As Integer   Dim wC     As Integer   Dim wVal    As String   Dim wI     As Integer   '   wR = Target.Row   wC = Target.Column   wVal = Target.Value   wI = 0   ExitFlg = False   Do While ExitFlg = False     If Cells(wR, wC).Offset(0, wI).Interior.ColorIndex = xlNone Then       If wI > 0 Then         Application.EnableEvents = False         Cells(wR, wC).Offset(0, wI) = wVal         Cells(wR, wC) = ""         Application.EnableEvents = True       End If       ExitFlg = True     End If     wI = wI + 1   Loop End Sub 'マクロ貼付 (1) 入力シートをマウス右Click → 「コードの表示」→ 表示される画面に貼り付け

その他の回答 (2)

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.2

~白になるまで入れないのような処理は、普通繰り返し処理(Do~Loop、For~Nextなど)を使用します ------------------------------------------------------------ Sub test() Dim i As Integer i = 0 Do If ActiveCell.Offset(0, i).Interior.ColorIndex = 2 Then ActiveCell.Offset(0, i).Value = "ある文字" Exit Do End If i = i + 1 Loop End Sub ------------------------------------------------------------ セルが白色なら"ある文字"を白色以外なら右へのサンプルです 私も「色飛ばしマクロ」は良くないと思う

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

>「色飛ばし」なんて言葉はエクセルその他で無いと思うよ。内容を読んでもらうためには不適と思う。 ーー セルの色は誰がどうして色づけたのか。人力で無いと出来ないようにも思うが、プログラムで入れたのなら、その段階で質問のデータのセットを考えると簡単な場合もありそう。 >その文字を入れ その文字はどのようにして決まるのか。 まさか同じ文字列ではなかろう。 ーー 具体的な例でも挙げないと、質問内容が不明確。 この質問は丸投げ的質問で、コードを作れという類だが、他人が組む場合は、質問は具体的に、人手で人間がやるときの行動を記述するつもりで書かないとプログラムは出来ないものだ。

関連するQ&A