[[20171108153700]] 『コメント内へ画像の自動挿入』(BlackMilk) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『コメント内へ画像の自動挿入』(BlackMilk)

Excel初心者です。

検索すると、特定名称のフォルダ(仮に「取込画像」)内に画像データ(JPEG)を入れた状態でExcelセル内へ固定サイズ&圧縮で自動挿入する方法は色々と出てくるのですが、セル右クリック、コメントの挿入で出てくるコメント内へ画像を自動挿入することは可能でしょうか?

コメント内へ個別での画像挿入方法や画像名のコード化が必要?(度々行う作業であり、写真ナンバーのまま扱いたいので参考に出来ませんでした。)な方法しか検索できませんでした。

現状、H列4〜2723内に画像名称を記載している(画像名称ではない文字表記もあります。)のですが、H列に「取込画像」フォルダ内にある画像名称と一致した場合、一致したセルにコメント表記で固定サイズ&圧縮した画像を自動的に読み込むようにすることは可能でしょうか?

分かりにくい文章で申し訳ありません。
よろしくお願いいたします。

< 使用 Excel:Excel2010、使用 OS:Windows8 >


コメントに画像挿入するのは、普通の考え方ではできないですが、背景色代わりに画像を使う事で裏技的に実現できますね。

とはいえ、コメントオブジェクトって、マクロの自動記録を使っても背景に関するコードは記録されないので、かなり難しいです。初心者を自称するなら、こんな難しい事は諦めてください、と言いたいです。(ご自分で調べて実現しようとするのならば応援しますが、他力本願してはいけない内容)

ポップアップを諦めて、普通にセル内に画像を読み込むのでは駄目な理由を教えてください。返答次第では、調べる気になるかも知れません(私が調べても、コード化可能かどうかは保証できません)。 または、ファイル名の書いてあるセルの右クリックかダブルクリックでユーザーフォームを表示して、ここに画像を貼るのならば、標準命令で実現できますよ?
(???) 2017/11/08(水) 16:47


ちょっと試してみたところ、思ったより簡単に貼れました。 サイズ調整はご自分で工夫してもらうとして、セルに画像ファイルのフルパスを記入しておき、それを右クリックするとコメントとして貼りつけるマクロ例なぞ。

 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Dir(Target.Value) <> "" Then
        Target.ClearComments
        With Target.AddComment
            .Shape.Fill.UserPicture Target.Value
        End With
        Cancel = True
    End If
 End Sub

右クリックで動作するようにしていますが、セルのChangeイベントの方にコードを書けば、フルパスを変更するだけで画像を張り替えるようにできます。(Changeイベントの場合、Cancelプロパティの行は消す)
(???) 2017/11/08(水) 17:15


早々のコメントありがとうございます。

コメント内への自動挿入はとても難しいのですね。。
安易に考え、他力本願な質問をしてしまい大変申し訳ありません。

セル内に画像を読み込まない方法を探している理由としては、現在行っている作業が基本的に文字ベースのデータであり列(25.38)&行(18.5)とサイズが固定されているデータとなるからです。
写真をセル内に挿入&表記するには画像取込み列を変えたとしても行サイズを変更しなければならないと思うのですが、それが出来ないのです。
検索しているとコメント内に画像表記が可能そうでしたので、この方法だと現状データのセルサイズに関わらず画像添付も可能だと思い質問させていただきました。

私の検索結果で理想の作業に近いものとして
?@セル内に写真を自動挿入させる https://oshiete.goo.ne.jp/qa/3749418.html
?A画像名からコメントへ挿入させる http://www.atmarkit.co.jp/ait/articles/1406/25/news039.html
?B画像をコメントへ挿入させる http://officetanaka.net/excel/vba/tips/tips120.htm
というものが出てきまして、
?@と?A?Bを組み合わせると私の思っている作業が出来る?
もしくは?A、?Bをいじってみると出来る?など思いながら色々検索&マクロいじりを素人ながらやってみたのですが達成出来ませんでした。
最終的にこちらのページを色々と拝見させていただいていた流れで質問させていただいた次第です。

コメント以外でもセルサイズを変更せずに画像確認が可能な表記が実現出来る方法は他にありそうでしょうか?
ヒントだけでもいただけるととても助かります。

よろしくお願いいたします。
(BlackMilk) 2017/11/08(水) 17:51


他の案としては、最初に書いたように、ユーザーフォーム利用ですね。でも、コメント案でもそんなに難しい命令を使わずに済んだので、この線で押しても良いように思いますよ。

先に書いたコードを発展させて、ご指定のセル範囲に画像のフルパスを記入すると、コメントに画像貼付する応用例も書いておきます。対象ファイルが無くなるとコメント消去しますが、画像ファイル以外を指定すると、空欄コメントになります。(少し手抜き)

H列にフルパスを入力するだけで反応しますし、まとめて範囲コピーしても良いようにしています。

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Long

    For i = 1 To Target.Count
        If Not Intersect(Target(i), Range("H4:H2723")) Is Nothing Then
            Target(i).ClearComments
            If Target(i) <> "" Then
                If Dir(Target(i).Value) <> "" Then
                    With Target(i).AddComment.Shape
                        On Error Resume Next
                        .Fill.UserPicture Target(i).Value
                        On Error GoTo 0
                        .Width = 160
                        .Height = 120
                    End With
                End If
            End If
        End If
    Next i
 End Sub
(???) 2017/11/08(水) 18:02

早々に再度コメントをいただいていたにも関わらず、気付かずに質問をしてしまい申し訳ありませんでした。

ご教授いただいた中でセル指定をされているのは分かったのですが、参照させるフォルダ「取込画像」はどこに挿入すると画像が取り込めるようになりますでしょうか?

<>内や""内に取込画像と入力するとコメントが自動挿入されることは確認できたのですが、画像を取り込めるまで至れませんでした。

また、「対象ファイルが無くなるとコメント消去、画像ファイル以外を指定すると空欄コメントになります。」とのことですが、対象ファイルが無くなってもコメント情報を保持、画像ファイル以外の指定はコメント挿入無しなどの操作も可能でしょうか?

ご迷惑ばかりお掛けしてしまい大変申し訳ありません。
詳細までご教授いただけると幸いです。
(BlackMilk) 2017/11/09(木) 11:14


H列のセルに、画像ファイル名をフルパスで指定すると、それを貼るようになっています。ファイル名だけの入力だと、それがどのフォルダにあるか判らないから、貼れません。どこに画像ファイルがあるのかの説明がないので、そのようにコーディングしましたし、「フルパス」と明記しました。

もし、画像ファイルの所在は1箇所で決まっているのであれば、フォルダのパスだけ定数にしておき、それとセルのファイル名を文字列連結して使うように直してみてください。
(???) 2017/11/10(金) 08:59


追加のご要望について。

ファイル名を変えると画像を張り替える必要があるだろう、と思い、セル操作するとまずコメントを削除してから、新しいコメントを貼るようにコーディングしています。だから、H列かどうか確認後、まず削除している訳ですね。

コメントに画像を貼った後に、手入力で文字を書くという運用であれば、コメントを削除する前に、コメントの文字列を変数にコピーしておき(.Comment.Text で拾えると思います)、張り替える際にこれを転記するように変えてみてください。 こうすれば、ファイル名を消しても、文字列だけ残せるでしょう。

画像ファイル以外の場合はコメントを貼らない、というのは、ファイルが画像かどうか判定する関数が無いので、ちょっと工夫する必要があります。 画像以外を入力する事は無いなら考えても無駄になりますし、本筋以外のコードが増えてしまい伝えたい部分が埋もれてしまうので、省略した訳ですね。(今回の質問の肝は、コメント機能で画像を貼る事であり、ファイルが画像かどうか判定するのは別の話)

お薦めの実現方法は、完璧な判定にはなりませんが、ファイル名の拡張子を調べて、それが画像形式のものだった場合のみ処理するように変更すれば、実用上は問題ないくらいの処理にできるでしょう。 画像といってもファイル種類が多いので、そこは貴方が実際に使う形式だけチェックすれば良いでしょうから、まずはご自身で頑張ってみてください。
(???) 2017/11/10(金) 13:26


度々ご教授いただきありがとうございます。

「フルパス」=データの正式名称だと思い込んでおりました。
ご教授の通り「フルパス」を記載すると自動で取込が行えました。
想像してたそのもので感動しました。
本当にありがとうございました。

H列の画像名称は変えることができない状態でしたので、他の列へファイルパスを挿入する計算式を入れることでH列の画像名称を残したままコメント画像を取り込むことが出来ました。

実際に作動させることが出来て分かりましたが、取込フォルダには画像データしか入っていないため、その他の文字記載セルにはコメントが付かず、想像通りのシステムでした。
また、コメント画像の保持については、コメント画像を取込完了したセルをコピー&「コメント」貼付けを行うことで他のPCでの表示が可能でした。

ご丁寧に教えていただき本当にありがとうございました。
(BlackMilk) 2017/11/10(金) 16:14


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.