【エクセルの質問です】

エクセルで、製品のストック明細を作らなければなりません。
明細には分かり易いように製品の画像(イラスト)
が必要になります。
入力作業を簡単にする為に、製品番号を入力すれ
ば該当製品のイラストが参照されて表示される方法
はないでしょうか(例えばVLOOKUPの様な)
具体的なレクチャーをお願いします!

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/07/28 11:06:56
  • 終了:2006/07/28 12:47:15

ベストアンサー

id:gong1971 No.1

gong1971回答回数443ベストアンサー獲得回数682006/07/28 11:53:53

ポイント70pt

残念ながら、ご希望の動作を行う機能はありません。

マクロ(VBA)を作成する事で近い動作をさせる事は可能です。


以下の前提条件でマクロを作成しました。

  • 製品の画像ファイル名は[製品番号.jpg]
  • 製品の画像ファイルは「画像」フォルダに保存
  • 上記「画像」フォルダはExcelのファイルと同じフォルダに置く

※前提が異なる場合や、うまく動作しない場合は返信にて教えてください。


■マクロの設定方法と実行

1.新規ブックを作成します。

2.下記urlの手順に従い、プロシージャを作成します。(プロシージャの名前は適宜変更してください)

3.下記のコードをコピーして、Public Sub と End Sub の間に貼り付けます。

4.Visual Basic Editor を閉じます。

5.ファイルを適当な名前を付けて保存します。(開いたままにしておきます)

6.ストック明細のファイルを開きます。

7.製品番号が入力されたセルを1つ選択します。

8.[ツール]メニュー[マクロ][マクロ]で2.で付けた名前のマクロを選択します。

9.[オプション]ボタンをクリックし、「Ctrl + 」の横に q を入力し[OK]をクリックします。

10.[実行]ボタンをクリックする事で画像ファイルが挿入されます。

11.次回以降は、[Ctrl]+[Q]で画像ファイルが挿入されます。


■プロシージャの作成方法

http://www.moug.net/skillup/ebb/evbb/evbb012-2.htm

■プロシージャに貼り付けるコード

    Dim tmp As String
    
    tmp = ActiveWorkbook.Path & "\画像\" & ActiveCell.Value & ".jpg"
    If Dir(tmp) > "" Then
        ActiveCell.Offset(0, 1).Select
        ActiveSheet.Pictures.Insert(tmp).Select
        ActiveCell.Offset(0, -1).Select
    Else
        MsgBox "ファイルが見付かりません。"
    End If


もしマクロを使用したくない場合は、画像ファイルを開く為のリンクを

設定する事であれば可能です。製品番号がA1に入力されているとして、

=HYPERLINK("画像\" & A1 & ".jpg") という式になります。

id:BABBI

スゴイです!!出来ました!

VBAは使った事が無いので、全然分からなかったので驚きです。

また、分かり易く説明していただいて感謝です。

これを機に、マクロの勉強もしてみますm(__)m

2006/07/28 12:44:21

その他の回答(1件)

id:gong1971 No.1

gong1971回答回数443ベストアンサー獲得回数682006/07/28 11:53:53ここでベストアンサー

ポイント70pt

残念ながら、ご希望の動作を行う機能はありません。

マクロ(VBA)を作成する事で近い動作をさせる事は可能です。


以下の前提条件でマクロを作成しました。

  • 製品の画像ファイル名は[製品番号.jpg]
  • 製品の画像ファイルは「画像」フォルダに保存
  • 上記「画像」フォルダはExcelのファイルと同じフォルダに置く

※前提が異なる場合や、うまく動作しない場合は返信にて教えてください。


■マクロの設定方法と実行

1.新規ブックを作成します。

2.下記urlの手順に従い、プロシージャを作成します。(プロシージャの名前は適宜変更してください)

3.下記のコードをコピーして、Public Sub と End Sub の間に貼り付けます。

4.Visual Basic Editor を閉じます。

5.ファイルを適当な名前を付けて保存します。(開いたままにしておきます)

6.ストック明細のファイルを開きます。

7.製品番号が入力されたセルを1つ選択します。

8.[ツール]メニュー[マクロ][マクロ]で2.で付けた名前のマクロを選択します。

9.[オプション]ボタンをクリックし、「Ctrl + 」の横に q を入力し[OK]をクリックします。

10.[実行]ボタンをクリックする事で画像ファイルが挿入されます。

11.次回以降は、[Ctrl]+[Q]で画像ファイルが挿入されます。


■プロシージャの作成方法

http://www.moug.net/skillup/ebb/evbb/evbb012-2.htm

■プロシージャに貼り付けるコード

    Dim tmp As String
    
    tmp = ActiveWorkbook.Path & "\画像\" & ActiveCell.Value & ".jpg"
    If Dir(tmp) > "" Then
        ActiveCell.Offset(0, 1).Select
        ActiveSheet.Pictures.Insert(tmp).Select
        ActiveCell.Offset(0, -1).Select
    Else
        MsgBox "ファイルが見付かりません。"
    End If


もしマクロを使用したくない場合は、画像ファイルを開く為のリンクを

設定する事であれば可能です。製品番号がA1に入力されているとして、

=HYPERLINK("画像\" & A1 & ".jpg") という式になります。

id:BABBI

スゴイです!!出来ました!

VBAは使った事が無いので、全然分からなかったので驚きです。

また、分かり易く説明していただいて感謝です。

これを機に、マクロの勉強もしてみますm(__)m

2006/07/28 12:44:21
id:freemann No.2

freemann回答回数315ベストアンサー獲得回数502006/07/28 12:23:28

ポイント5pt

表示したい画像の指定はフルパスでないといけないようです。

Sub loadPict()

Const pictDirectry As String = "C:\hoge\hoge2\"

Const loadColPosition As Integer = 3

Dim strPath As String

Dim a As Range

'挿入したい画像のフルパスでの指定

strPath = pictDirectry & ActiveCell.Value & ".jpg"

'挿入するセルを選択する

Cells(ActiveCell.Row, ActiveCell.Column + loadColPosition).Select

'画像を挿入するメソッド

ActiveSheet.Pictures.Insert(strPath).Select

End Sub

ダミーです

http://q.hatena.ne.jp/1154052414

id:BABBI

ありがとうございます。

マクロは使った事が無いので、折角の回答も今のレベルでは分かりません(^_^;)

2006/07/28 12:45:23

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません