
エクセルで作った「商品リスト」があります。
作家名や色など、好みの条件で検索してもらうには扱いなれている方の多いエクセルがいいかと思ってエクセルにしました。
リスト中の画像が小さいので、拡大表示出来るようにしたいのです。
クリックしたら、メッセージボックスが起動してその中に任意の拡大画像が表示される
もしくはIEを使って別窓で開くようにしたいのですが、このとき、余分なボタンやスペースが表示されないようにしたいのです。(某書籍販売サイトア○ゾンみたいに、戻るボタンか、クローズボタンのみになるのが理想です)
エクセルでそういったことが可能なのでしょうか??
VBAは勉強してみよう!と思ってはじめたところです。はっきりいってど素人の域を出ません。
でも、挑戦してみたいので、お手数ですが、方法をご存知の方、教えてください。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>画像のほうがかなり圧縮しちゃったので荒く、ぼやっとして
ということは、「リスト中の画像」と「拡大画像」とはファイルが異なるということですね。
次のような段取りはいかがでしょうか?
1)「商品リスト」に貼り付けられた「リスト中の画像」の名前と「拡大画像」のファイル名の対応表を作るか、もしくは、同じ名前にしておく。
2)「リスト中の画像」をクリックすると、「拡大画像」をワークシートに貼り付け、「拡大画像」をクリックするか、別の「リスト中の画像」をクリックするか、あるいは、セルの選択範囲が変わると「拡大画像」を削除します。
上記の操作を行なうためには、ワークシート内の画像にマクロを割付ける必要がありますが、
'-------------------------------------------------------------------
Sub マクロ割付()
Dim myShape As Object
For Each myShape In ActiveSheet.Shapes
If myShape.Type = msoPicture Then
myShape.OnAction = "拡大表示"
End If
Next
End Sub
'-------------------------------------------------------------------
というようなことで、一括してマクロを割付けます。
以下、標準モジュールとシートモジュールに下記のマクロを記述します。
上記(1)で言うと、「リスト中の画像」の名前と「拡大画像」のファイル名が「同じ名前」の場合のマクロです。
「リスト中の画像」に拡張子が付いていない場合は、
myLink = myFolder & Application.Caller & ".JPG"
のように書き換えてください。
まぁ、荒削りなマクロですので、考え方だけご理解いただければ、後はご自分で細々と記述なさってみてください。
'標準モジュール------------------------------------------------------
Sub 拡大表示()
Application.EnableEvents = False
Dim myPic As Object
Dim myFolder As String
Dim myLink As Variant
'閲覧済みの「拡大画像」を削除
On Error Resume Next
ActiveSheet.Shapes("拡大画像").Delete
On Error GoTo 0
If Application.Caller = "拡大画像" Then Exit Sub
'「拡大画像」の保存フォルダのフルパスを指定
myFolder = "C:\My Documents\My Pictures\hoge\"
myLink = myFolder & Application.Caller
Set myPic = ActiveSheet.Shapes(Application.Caller)
'「拡大画像」を貼り付ける
Application.ScreenUpdating = False
ActiveSheet.Pictures.Insert(myLink).Select
With Selection.ShapeRange
.Name = "拡大画像"
.LockAspectRatio = msoTrue
.Left = myPic.Left + myPic.Width
.Top = 0
.Width = Application.Width - (myPic.Left + myPic.Width) - 100
If .Height > Application.Height Then .Height = Application.Height
End With
Selection.OnAction = "拡大表示"
ActiveSheet.Shapes(Application.Caller).TopLeftCell.Select
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'シートモジュール-----------------------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
ActiveSheet.Shapes("拡大画像").Delete
On Error GoTo 0
End Sub
No.4
- 回答日時:
>回答番号:No.1 この回答への補足
過去ログを紹介した積りがURLを間違えて貼っていたようです。
大変失礼しました。
以下、時間が取れないのでコメントだけで失礼します。
>拡大した画像をさくっと戻せなかったので、挫折しました。
先にも書きましたが、Sub tes1()では画像の下に隠れているセル範囲のサイズを基準にして拡大されているかどうか判定しています。
セル範囲の指定が適切に行われていれば、拡大/復元が交互に切り替えられるようになっています。
画像が貼り付けられているセル(範囲?)サイズはどうなっていますか?
画像の貼り付けサイズは同じですか?
>画像のほうがかなり圧縮しちゃったので荒く、ぼやっとして・・・・
Excelに貼り付けるときに圧縮したということですか?
圧縮前の元画像は同じPC内に保存されているのですか?
もしそういうことなら、ファイルを直接読み込めばどうでしょうか。
表示はユーザーフォームとかコントロールツールボックスのイメージ枠を使えばどうでしょうか。
>「ユーザーフォーム」でも写真を検索表示できるように・・・・・・
そういう風にして、出来ることを蓄積拡大していけばよいと思いますよ。
実際にやってみて、解らないところを、具体的にピンポイントで、質問を発信してください。
はじめてのユーザーフォーム ~ リスト入力
http://hp.vector.co.jp/authors/VA016119/hajimete …
リスト内の各データを、必要に応じて個別で表示したい
http://www.ne.jp/asahi/juku/excel/071119.htm
No.3
- 回答日時:
縮小画像の入ったセルにコメントを挿入し、コメント枠の[書式設定]-[塗りつぶし効果]で、
その画像を指定するのはいかがでしょうか。
セルにカーソルを合わせると、コメント枠サイズの画像が表示されます。
ありがとうございます。こういうやり方もあったんですね!
ちょっと目から鱗でした。
今回は画像の表示がモニタからずれてしまうということで、
「できれば違う方法で」と言うことになってしまったんですが、別機会に是非利用させていただきます。
ありがとうございました。
No.2
- 回答日時:
画像の保存ファイル又はファイルにハイパーリンクを設定してはいかがですか。
写真を表示セルをアクティブにする。 → 挿入 → ハイパーリンク → ハイパーリンクの編集 → 検索先でフォルダ又はファイルを検索 → 表示文字列に適当な名称を入力
入力された文字列をクリックするとリンク先の写真が表示される。

ありがとうございます。
実は最初、ハイパーリンクで拡大表示するようにしてたんですが、それだとIEが立ち上がってしまい、画面をふさいでしまうんです。
年配の方だと、「画面が消えた!」と驚かれるので、保存している(JPG)のままで開いてくれるのが理想だったんです。
なので、メッセージボックス見たいなの使えば、どの縮小画像クリックしても立ち上がるようになって、メモリもあまり食わないのかなー?なんて思ったんです。
不勉強ですみません。ハイパーリンクで、アプリケーションを指定して拡大画像を表示できるのでしょうか。
No.1
- 回答日時:
直接画像サイズを拡大/復元してはだめでしょうか。
対象画像に下記マクロを登録すれば、クリックで拡大/復元されます。
サイズの判定基準を画像の下にあるセルサイズとして
Range("C2:E5").Height
としています。
実状に合わせて書き換えてください。
Sub tes1()
Dim sh As Single
Dim sw As Single
Dim h As Single
With ActiveSheet.Shapes(Application.Caller)
sh = .Height
sw = .Width
If sh <= Range("C2:E5").Height Then
h = 2
Else
h = 0.5
End If
.Height = sh * h
.Width = sw * h
End With
End Sub
別窓で表示するなら、ユーザーフォームでイメージコントロールを使えば良いかもしれません。
エクセルで貼り付けたオブジェクトの画像をユーザーフォームのイメージコントロールで表示する方法
http://oshiete1.goo.ne.jp/kotaeru_reply.php3?q=4 …
この回答への補足
ありがとうございます。試してみました。
画像がそのまま大きくなるんですね!自分としてはちょっと嬉しくなったんですが、画像のほうがかなり圧縮しちゃったので荒く、ぼやっとしててアイタタな画像になってしまうことと、拡大した画像をさくっと戻せなかったので、挫折しました。(;_;)
で、
>別窓で表示するなら、ユーザーフォームでイメージコントロールを使えば良いかもしれません。
と仰っていた「ユーザーフォーム」が初耳だったものでそちらを少し検索してみました。
フォーム自作してそこに画像が貼れるんですね!?知りませんでした。
「デフォルトでフォームサイズが固定されている」とコメントされている方がいらっしゃったのですが、少し大きめで表示しつつ、「ユーザーフォーム」でも写真を検索表示できるようになったらいいな!と一瞬思ったのですが、初学者には無謀でしょうか?
もしお手すきでしたらアドバイス下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルにサムネイル画像組み込み 2 2022/09/02 17:13
- Excel(エクセル) エクセル、画像ファイル名の書かれたセル(複数個所)に画像を一括で表示させる方法 1 2023/04/19 00:19
- フリーソフト 画像貼り付け、URLに飛べる軽いメモ帳 3 2022/05/12 07:42
- Excel(エクセル) エクセル、日々の集計整理方法。(再送です。) 5 2022/10/02 00:19
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- その他(Microsoft Office) windows10で作業を終了する際の「保存しますか はい いいえ」を表示させずに自動で保存する方法 6 2023/03/15 11:29
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/04/21 13:46
- Excel(エクセル) エクセルのSUM関数について 4 2023/04/18 10:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
男の人はやってるとき 彼女がす...
-
男性の方に質問です。 バックで...
-
彼女が感じやすくて可愛い
-
風俗ってどこまでの接客をします?
-
フェラチオは妻の義務ですか?...
-
高校生です。彼氏の前で初めて...
-
女性が喘いでいるときの男性の...
-
夫婦の夜の営みについてです。 ...
-
男性に質問です! 電話だけで勃...
-
彼氏と毎日セックスするのは異...
-
彼と体の相性が良すぎて悩んで...
-
ソープランドについて
-
兄妹や姉弟で、キスやエッチし...
-
男性に質問です。 デリヘルって...
-
初体験って気持ちいいの? 男の...
-
彼女がフェラをしてくれません。
-
キスすれば相手を好きでなくて...
-
セックス中に動画や写真を撮る...
-
実家住まいの場合Hはホテル以外...
-
もし週1しか恋人と会えなかった...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
男の人はやってるとき 彼女がす...
-
男性の方に質問です。 バックで...
-
彼女が感じやすくて可愛い
-
風俗ってどこまでの接客をします?
-
夫婦の夜の営みについてです。 ...
-
高校生です。彼氏の前で初めて...
-
女性が喘いでいるときの男性の...
-
フェラチオは妻の義務ですか?...
-
初体験って気持ちいいの? 男の...
-
彼氏と毎日セックスするのは異...
-
兄妹や姉弟で、キスやエッチし...
-
男性に質問です! 電話だけで勃...
-
彼と体の相性が良すぎて悩んで...
-
男性に質問です。 デリヘルって...
-
彼女がフェラをしてくれません。
-
実家住まいの場合Hはホテル以外...
-
もし週1しか恋人と会えなかった...
-
キスすれば相手を好きでなくて...
-
ソープランドについて
-
彼氏が前戯をしてくれない
おすすめ情報