
マクロ初心者です。
ネットで調べながら、教えていただきながら、
なんとか少しずつ前に進んでいる私をお助け下さい。
【前提としては】
C列には○×のハイパーリンクが貼られています。
しかし、C3のように途中にハイパーリンクが無いものもあります。
ハイパーリンクはそれぞれクリックすると写真が表示されるようになっています。
【現状のマクロの動きとしては】
C列のハイパーリンクを受けてE列にアドレスが表示されるようになっています。
そしてそのE列のアドレスを受けてD列に写真が表示されるようになっています。
つまり、C3のセルのように、ハイパーリンクが無いと、E3のセルにアドレスが表示されません。
E3のセルにアドレスが表示されないと、D3のセルに写真が表示されません。
【問題としては】
E列にアドレスの表示をするマクロはC3のように
ハイパーリンクが途中なくてもそこは飛ばして
次のC4からのアドレスをE4からに表示してくれるようになっています。
しかし、写真表示のマクロはE3のようにアドレスがないと
D3以降の写真を貼りつけずに止まってしまします。
恐らく if で分岐するのだと思いますが、
その書き方がわからず困っています。
下記に現状のマクロも記載します。
お手数お掛けしますが、どうか教えてください。
よろしくお願い致します。
【現状のマクロ】
Dim h As Hyperlink
Dim a As String
Dim s As String
For Each h In ActiveSheet.Hyperlinks
a = h.Address
s = h.SubAddress
If s <> "" Then
a = a & " # " & s
End If
h.Range.Offset(0, 2) = a
Next
Dim i As Long, imax As Long
Dim sp As Shapes
imax = Cells(Rows.Count, 5).End(xlUp).Row
For i = 2 To imax
Cells(i, 4).Select
p = "" & Cells(i, 5).Value & ""
ActiveSheet.Pictures.Insert(p).Select
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Width = Selection.ShapeRange.Width * 0.25
Selection.ShapeRange.Height = Selection.ShapeRange.Height * 1.25
Next
For Each sp In ActiveSheet.Shapes
Next
End Sub

No.1ベストアンサー
- 回答日時:
「For i = 2 To imax」と「Cells(i, 4).Select」の間に「If Cells(i, 5).Value <> "" Then」
「Selection.ShapeRange.Height = Selection.ShapeRange.Height * 1.25」と「Next」の間に「End If」
をそれぞれ入れれば良いのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBA_散布図について
-
ハイパーリンクからアドレスを...
-
エクセルのマクロ
-
Excelアルファベットを含む数値...
-
Excel(VBA)データ入力に応じて...
-
列の数値をランダムに並び替え...
-
マクロで教えてください。
-
Excel 2003のマクロについて
-
マクロの作成
-
VBA シングルクォーテーション...
-
エクセル関数
-
簡単なマクロが狙った動きをし...
-
EXCELの行(または列)の...
-
Excel2007で、太字にした行のみ...
-
マクロの組み方
-
EXCEL 桁下げしたそのままの値...
-
昨日、エクセルVBAで、隣のセル...
-
Excelで周期的に列を削除する方法
-
特定のセルだけ結果がおかしい...
-
エクセルの複数シートの保護を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2007で、太字にした行のみ...
-
Excel にて非表示行を探すワー...
-
条件に応じて特定の行を非表示...
-
excel ある部分だけをコピペし...
-
エクセルで全ての数字間にカン...
-
エクセル VBA 小数点を含む数字...
-
Excel2007 セルを右方向に削除...
-
値貼り付けをしても書式も貼り...
-
Excel(VBA)データ入力に応じて...
-
「マクロ」の足し算の式を教え...
-
Excelでセル内の数式は残し値だ...
-
wordのvbaでハイパーリンク設定...
-
エクセル2003でマクロをおこな...
-
VBA コピーを有効行までループ...
-
エクセルで特定の行を消して間...
-
EXCEL マクロで「キーワード入...
-
エクセル マクロ オートシェ...
-
yyyy/mm/ddの日付に一括変換す...
-
Excelで周期的に列を削除する方法
-
並べ替えのマクロで対象行の範...
おすすめ情報