重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

お世話になります。

エクセルで,次のようにしたい場合はどうすればいいのでしょうか。
マイピクチャの中に,それぞれ320001~320005という名前の写真が計5枚入っています。
エクセルのA1のセルに,320001を入力すると,320001の名前の写真を表示,320002を入力すると320002の名前の写真を表示という具合にしたいのですが。

写真を表示するのは,どこか特定のセルでも構いませんし,図形(四角など)を挿入して,その中に表示でも構いません。

できれば関数で解決したいのですが,無理ならマクロでも結構です。

ご教授,よろしくお願いします。

A 回答 (3件)

イメージコントロールを使います。


http://www.moug.net/tech/exvba/0090069.html

このなかの最初のVBAプログラムで、ファイル名を特定セルから読むようにすればよいです。

Image1.Picture = LoadPicture(Range("A1").Value)
    • good
    • 0

せっかくですし、マクロを作るときの考え方を軽くだけ。




処理の流れとして、
・「特定の名前」がついている図が有ったら、その図を削除
・A1セルの内容を確認し、写真を挿入
・表示したい位置に写真を移動
・写真に「特定の名前」をつける
という処理をするマクロを、セルの内容が変更されたときに走るように書いてやればOKです。


マクロを作り、管理出来るのであれば、こちらの方が遥かに簡単です。
    • good
    • 0

関数「のみ」ではおそらく、無理です。


マクロを使えばある程度簡単に出来ます。
ですが、マクロを使わず一般機能だけでもなんとかできます。


とりあえず、画像を二つに絞って手順を説明していきます。
文字だけで説明するのは困難なので、適宜、日本語を補ってお読みください。

まず、欲しい画像を一つのシートに並べます(シート名を「写真」とします)。
「写真」シートの行高・列幅は「全て同じ」にしておくと後が楽です。
おそらく、デフォルト(初期値)のままがやりやすいです。

1枚目の写真(320001)を挿入し、表示したいサイズに拡縮します。
写真を右クリック⇒サイズとプロパティから、「高さ」を10cmにしました。
これで、A1:G21の範囲にぴたりと合うサイズです。

2枚目の写真(320002)を挿入、同様に高さを10cmにして、
A23:G43の範囲に移動させます。

これで写真の準備が出来ました。(実際は5枚ですかね?必要分、同様に準備しましょう。)


続いて・・名前(範囲名)を定義します。
2007以降であれば、数式タブから「名前の管理」を選択。
ダイアログ内の「新規作成」ボタンを押します。
出てきたダイアログの「名前」に「_230001」、「参照範囲」は「A1:G21」として、OK。
もう一度「新規作成」し、「名前」に「_230002」、「参照範囲」は「A23:G43」として、OK。

2003以前なら、挿入メニューから名前⇒定義を、それぞれ選択します。
ダイアログ内の「名前」に「_230001」、「参照範囲」は「A1:G21」として、追加ボタン。
もう一つ、「名前」に「_230002」、「参照範囲」は「A23:G43」として、追加ボタン。

それぞれ2つ、名前が定義出来たらOKボタンで閉じます。


表示領域の準備をします。
F5キーまたはCtrl+Gを押し、ジャンプのダイアログを出します。
先ほど定義した「名前」が2つ表示されているはずですので、どちらかを選択し、OKします。
その状態で、Ctrl+Cでコピーします。右クリック⇒コピーはNGです。

表示したいシートをアクティブにし、
2007以降であればホームタブの貼り付けの「▼」のなかから「リンクされた図」を選択。
2003以前であれば、Shift+編集メニューから「図のリンク貼り付け」で貼り付けます。
先ほどの「ジャンプ」で選択した図が張り付くはずです。
これを表示したい場所に移動させます。


表示したいシートをアクティブにしたまま、名前をもう一つ、先ほどの手順で定義します。
「名前」には「表示画像」、参照範囲に「=INDIRECT("_"&$A$1)」とし、名前を追加しましょう。


画像の表示領域を選択し、数式バーに入っている参照式を「=表示画像」に書き換えます。


以上で準備完了です。
表示したいシートのA1セルに「320001」「320002」と半角で入力し、
画像が変わるのをご確認くださいませ。




おつかれさまでした。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!