特定の列に対して、セル中に画像が持つかの判定をvbaでさせたいです。
画像でいうBが判断対象列,Cが判断結果記入列。
vba前のシート
B4,B7,B8セルは画像を持つので、C列に、それがわかるようにYをたてたいです。
vba後のシート
すいません、以下自分で調べましたが、2つの要素(列への判断・走査 x shapeを持つセルか)をマッシュアップできませんでした!
皆様のお知恵をお貸し頂ければ幸いです。
特定の列に対してジャッジしていく、というのは以下を流用しようと思いました。
0000006 のセルかをサーチしています。
リンク内容
セルが画像を持つか、は以下を参考にしようと思いました。
リンク内容
objShape という概念とrangeがなんか、、照合させる方法が??でした。
何卒宜しくお願いします。
vba
1'以下ページより当画像向けに少々変更 2'https://it-skill-memo.work/2019/09/14/%E3%80%90vba%E3%80%91%E5%88%97%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E5%8F%96%E5%BE%97%E3%81%97%E3%81%A6dictionary%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B/#toc3 3'変数の宣言を必須 4Option Explicit 5 6Sub Sample() 7 8 Const TARGET_SHEET_NAME As String = "サンプルシート" 9 Const TARGET_COLUMN As Integer = 2 10 Const START_ROW As Integer = 2 11 12 Dim endRow As Double 13 Dim arrayData As Variant 14 Dim data As Variant 15 Dim dicDate As Object 16 17 '最終行を取得 18 endRow = Cells(START_ROW, TARGET_COLUMN).End(xlDown).Row 19 20 '1列分のデータを取得 21 With Worksheets(TARGET_SHEET_NAME) 22 arrayData = Range(.Cells(START_ROW, TARGET_COLUMN), _ 23 .Cells(endRow, TARGET_COLUMN)) 24 End With 25 26 'DictionaryのKeyに設定。Valueには空文字を設定 27 Set dicDate = CreateObject("Scripting.Dictionary") 28 For Each data In arrayData 29 If Not dicDate.Exists(data) Then 30 dicDate.Add data, "" 31 End If 32 Next 33 34 '今回ここらへんに0000006探しではなく、B列がshapeかの判定をさせたいです。 35 'そのためここをコメントアウト 36 '特定の値の存在確認 37 'If dicDate.Exists("0000006") Then 38 ' MsgBox "0000006が存在しました" 39 'End If 40 41End Sub 42コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/29 10:45
2021/10/29 10:46