🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

3回答

1142閲覧

VBAで特定の色のついたセルに決められた言葉を入れる

sigumakun

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

1クリップ

投稿2021/03/02 08:06

前提・実現したいこと

緑=組み立て 青=検査などと決めておいて
下の画像のような場合にD2:G9の範囲の
セルに決まった言葉を入れることは可能でしょうか。

イメージ説明

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

一例。

VBA

1Sub sample() 2 Dim d 'As Scripting.Dictionary 3 Set d = CreateObject("Scripting.Dictionary") 4 5 Dim ws As Worksheet 6 Set ws = Sheets(1) 7 8 Dim c As Range 9 For Each c In ws.Columns("B").SpecialCells(xlCellTypeConstants) 10 d(c.Offset(, -1).Interior.Color) = c.Value 11 Next 12 13 For Each c In ws.UsedRange 14 If c.Column > 1 Then 15 If d.Exists(c.Interior.Color) Then c.Value = d(c.Interior.Color) 16 End If 17 Next 18End Sub 19

投稿2021/03/02 10:40

jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

foreachでRange("D2:G9")の範囲を回してCells().Interior.ColorIndexで1セルずつ色をif文判定すれば良いでしょう。

投稿2021/03/02 08:18

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

マクロ どこまで理解されているのかわかりませんが、私も初心者です。
まず「A2」と「A3」のセルの色番号を取得する
Webで検索:https://programming-study.com/technology/vba-cell-color-syutoku/
'組み立ての色番号取得する
色番号(0) = Cells(2, 1).Interior.ColorIndex
色番号(1) = Cells(3, 1).Interior.ColorIndex
'セル範囲内をループで色番号を検索します
’条件に合った色番号だったら"組み立て"・"検査"を転記
’セル移動のとき、わざとSelectしています目視確認のためです
そのためにはPC画面の右半分をモジュール画面・左半分をシート画面に!
1度モジュール画面をクリック(好きなとこOK)次に[F8]キーをクリック
黄色い帯状のカーソルが表示されます

イメージ説明

変数名などにカーソルを当てると、現在、取得している値を確認できます
イメージ説明

VBA

1Sub 言葉を入れる() 2Dim 色番号(1) As Long, 番号 As Long 3Dim i As Long 4Dim ii As Long 5 6'組み立ての色番号取得する 7 色番号(0) = Cells(2, 1).Interior.ColorIndex 8 色番号(1) = Cells(3, 1).Interior.ColorIndex 9'セル範囲内をループで検索します 10 11 For i = 1 To 8 '行<縦方向> 12 For ii = 1 To 4 '列<横方向> 13 Cells(i + 1, ii + 3).Select 14 'セル色番号を取得 15 番号 = Cells(i + 1, ii + 3).Interior.ColorIndex 16 If 色番号(0) = 番号 Then Cells(i + 1, ii + 3) = _ 17 "組み立て" 18 If 色番号(1) = 番号 Then Cells(i + 1, ii + 3) = _ 19 "検査" 20 21 Next ii 22 Next i 23End Sub

投稿2021/03/03 08:02

syousuke.33

総合スコア312

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問