Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6697 / 13646 ツリー ←次へ | 前へ→

【43667】画像のパスをエクセルA列に表示させる方法 PiPo 06/10/22(日) 17:12 質問[未読]
【43668】Re:画像のパスをエクセルA列に表示させる方... かみちゃん 06/10/22(日) 17:25 発言[未読]
【43669】Re:画像のパスをエクセルA列に表示させる方... PiPo 06/10/22(日) 17:43 質問[未読]
【43670】Re:画像のパスをエクセルA列に表示させる方... かみちゃん 06/10/22(日) 17:51 発言[未読]
【43671】Re:画像のパスをエクセルA列に表示させる方... Kein 06/10/22(日) 17:53 回答[未読]
【43724】Re:画像のパスをエクセルA列に表示させる方... PiPo 06/10/23(月) 21:36 質問[未読]
【43725】Re:画像のパスをエクセルA列に表示させる方... ぱっせんじゃー 06/10/23(月) 21:50 発言[未読]
【43726】Re:画像のパスをエクセルA列に表示させる方... かみちゃん 06/10/23(月) 21:51 発言[未読]
【43727】Re:画像のパスをエクセルA列に表示させる方... PiPo 06/10/23(月) 22:40 お礼[未読]

【43667】画像のパスをエクセルA列に表示させる方法
質問  PiPo  - 06/10/22(日) 17:12 -

引用なし
パスワード
   同じフォルダーの中に、
「画像のファイル」と
「エクセルのファイル」とを入れています。
エクセル上のA列に画像のファイルを表示しようとしました。
下のコードで実行すると、画像の有無にかかわらず、
0001〜0060の画像のパスが表示されてしまいます。
画像のあるパスのみを明示したいのですが、下の
コードのどの部分を修正すると良いのでしょうか。

Sub PhotoCall()
Dim i As Integer
For i = 1 To 60
If ThisWorkbook.Path & "IMG_" & Format(i, "0000") & ".jpg" <> "" Then
  Range("A" & i).End(xlUp).Offset(1) = ThisWorkbook.Path & "IMG_" & Format(i, "0000") & ".jpg"
End If
Next
End Sub

【43668】Re:画像のパスをエクセルA列に表示させる...
発言  かみちゃん  - 06/10/22(日) 17:25 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>エクセル上のA列に画像のファイルを表示しようとしました。

質問の意味がよくわかりません。
表示したいのは、画像そのものですか?それとも画像のファイル名ですか?
ご提示のコードでは、A列にファイル名だけが記入されると思うのですが・・・

A列に記入されているファイル名の画像を表示したいということであれば、
どれかひとつのファイル名であれば、画像表示を一般操作でできますか?
できるならば、マクロの記録で記録すればいいです。
そして、ファイル名の部分をセルの値を参照するように修正すればいいのです。

わからなければ、画像表示(挿入)の「マクロの記録」で記録したコードを提示
してみてください。

【43669】Re:画像のパスをエクセルA列に表示させる...
質問  PiPo  - 06/10/22(日) 17:43 -

引用なし
パスワード
   ▼かみちゃん さん:

こんばんは

>>エクセル上のA列に画像のファイルを表示しようとしました。
>質問の意味がよくわかりません。
失礼しました。

>表示したいのは、画像そのものですか?それとも画像のファイル名ですか?
>ご提示のコードでは、A列にファイル名だけが記入されると思うのですが・・・
画像の必要はありません。存在する画像のファイルのパスが出せたらありがたいのですが・・・
(ファイル名がでるのですが、実際に存在する画像のファイル名だけを出したいのですが今のコードでは、1〜60まで全てのパスが出ます。)
>A列に記入されているファイル名の画像を表示したい

ファイル名だけで良いのですが。

【43670】Re:画像のパスをエクセルA列に表示させる...
発言  かみちゃん  - 06/10/22(日) 17:51 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>画像の必要はありません。存在する画像のファイルのパスが出せたらありがたいのですが・・・
>(ファイル名がでるのですが、実際に存在する画像のファイル名だけを出したいのですが今のコードでは、1〜60まで全てのパスが出ます。)

そういうことでしたら、Dir関数でファイルの存在チェックをすればいいです。
詳しくは、ヘルプを参照してみてください。

If Dir(ファイル名) <> "" Then
 '存在したときの処理
Else
 '存在しない場合の処理
End If

【43671】Re:画像のパスをエクセルA列に表示させる...
回答  Kein  - 06/10/22(日) 17:53 -

引用なし
パスワード
   順不同になりますが、こんなコードで出来ます。

Sub PhotoCall()
  Dim i As Integer
  Dim MyF As String

  MyF = Dir(ThisWorkbook.Path & "\*.jpg")
  Do Until MyF = ""
   i = i + 1
   Cells(i, 1).Value = MyF
   MyF = Dir()
  Loop
End Sub

【43724】Re:画像のパスをエクセルA列に表示させる...
質問  PiPo  - 06/10/23(月) 21:36 -

引用なし
パスワード
   ▼Kein さん:
ありがとうございました。
早速活用させていただきました。
お礼が遅くなりました。

また、お聞きしたいのですが、リンクさせる方法は
どのようにしたら良いのでしょうか。
マクロの記録でしましたが、一点だけですとリンクするのですが
順次リンクさせる方法がありましたら教えてください。

>Sub PhotoCall()
>  Dim i As Integer
>  Dim MyF As String
>
>  MyF = Dir(ThisWorkbook.Path & "\*.jpg")
>  Do Until MyF = ""
>   i = i + 1
>   Cells(i, 1).Value = MyF
>   MyF = Dir()
>  Loop
>End Sub

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Cells(i, 1).Value, _
   TextToDisplay:=Cells(i, 1).Value
をどのようにすると良いのか分かりません、
よろしくお願いします。

【43725】Re:画像のパスをエクセルA列に表示させる...
発言  ぱっせんじゃー  - 06/10/23(月) 21:50 -

引用なし
パスワード
   横から失礼します。

↓のようにしてはいかがでしょう

Anchor:=Selection

Anchor:=Cells(i, 1)

【43726】Re:画像のパスをエクセルA列に表示させる...
発言  かみちゃん  - 06/10/23(月) 21:51 -

引用なし
パスワード
   こんにちは。かみちゃん です。

> ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Cells(i, 1).Value, _
>   TextToDisplay:=Cells(i, 1).Value

このコードの前に、
Cells(i, 1).Select
と記述してはいけませんか?
ちなみに、順番にハイパーリンクを挿入する処理を「マクロの記録」で記録してみてください。

【43727】Re:画像のパスをエクセルA列に表示させる...
お礼  PiPo  - 06/10/23(月) 22:40 -

引用なし
パスワード
   ▼パッセンジャーさん かみちゃん さん:

ご指導ありがとうございました。
良く理解出来ました。
これからもよろしくお願いします。

6697 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free