スポンサーリンク

Excel VBAで,ボタンを押すとファイル選択ダイアログ。選んだ画像をシート上に表示

Excel/Wordオフィス製品のTipsまとめへ


Excelシート上のボタンを押したら,ファイル選択ダイアログが開いて,画像を選択すると,シート上にその画像が表示される。

そういうマクロの作り方。

Excel VBAのコード

開発リボンで,挿入>フォーム>ボタン。

関数の登録で,ボタン1_clickを新規作成。

コードの中身として,下記のものを登録:

Sub ボタン1_Click()
    
    ' ファイル選択ダイアログで画像ファイルを選択する
    vntFileName = _
        Application.GetOpenFilename( _
            Title:="画像を選択", MultiSelect:=False _
        )
        
    ' ファイルパスがあれば
    If Len(vntFileName) > 0 Then
        
        'MsgBox vntFileName
        
        Set targetCell = Range("C10:C10")
        targetCell.Select
        
        ' シェイプを作成し,画像を挿入
        Set myShape = ActiveSheet.Shapes.AddPicture( _
              Filename:=vntFileName, _
              LinkToFile:=False, _
              SaveWithDocument:=True, _
              Left:=targetCell.Left, _
              Top:=targetCell.Top, _
              Width:=targetCell.Width, _
              Height:=targetCell.Height _
        )
              
    End If
End Sub

これでOK。

参考資料:

8.3 ファイル選択ダイアログを使う - Excel VBA Tips
http://www.happy2-island.com/excelsmi...

  • ファイルを開くのではなく選んだファイルのパスを取得するためのものです


Excel VBAで,フォルダ内の画像ファイルを一括でシートに取り込み,サムネイルのアルバムを自動生成
http://language-and-engineering.hatenablog.jp/entry/20131109/GenerateImageThu...

  • 画像ファイルをシート中に取り込む


画像ファイルを挿入する:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug
http://www.moug.net/tech/exvba/012002...

  • LinkToFileにTrue、SaveWithDocumentにFalseを指定しているため、画像へのリンク情報だけがExcelファイルに保存されます。 ファイルサイズを大きくしたくない場合は、このように指定してください。


[Q&A] 画像読み込み失敗の判定 【OKWave】
http://okwave.jp/qa/q8441696.html

  • 画像ファイルは存在するけれども破損していて、Addpicture自体はエラーなしで実行できる場合


ボタンを押した際に、指定したセルに現在のエクセルファイルがあ..
http://q.hatena.ne.jp/1400204175

  • ボタンを押した際に、指定したセルに現在のエクセルファイルがあるフォルダの中の画像ファイルを貼り付ける


Excel/Wordオフィス製品のTipsまとめへ