Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 7全般 : Excel 2010)
ウィンドーを閉じないまま画像挿入
投稿日時: 18/09/12 07:00:56
投稿者: つけめん

こんにちわ。質問させてください。よろしくお願いします。
 
写真を挿入する際にフォルダの中に入っている写真を選び、開くボタンで画像を挿入するという場面にて
開くボタンで挿入したあとも開いたフォルダを閉じずにひらいたままにする。というvbaコードは作成可能でしょうか。
 
よろしくお願いします。
 

回答
投稿日時: 18/09/12 09:21:46
投稿者: WinArrow
投稿者のウェブサイトに移動

>フォルダの中に入っている写真を選び、
のところで複数ファイルを選択することができます。
 
GetOpenFilenameメソッドで、
MultiSelect=Trueを指定すればよいです。
 
使い方はHELPを参照してください。
 
ヘルプより
式.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
 
貼り付け位置を重ならないようにすることは、考慮する必要があります。
 

回答
投稿日時: 18/09/12 10:28:53
投稿者: Suzu

【写真選択ウィンドー】
http://www.moug.net/faq/viewtopic.php?t=77453
 
この続きですよね。
 
 

引用:
開くボタンで挿入したあとも開いたフォルダを閉じずにひらいたままにする。

ダイアログ自体、閉じた時に 戻り値が返ってきますので、、
開いたままだと、どのファイルが選択されたかが判りません。
なので希望の動作は通常は無理です。
 
API等を使えば可能かもしれませんが、APIは判りません。。
 
先のご質問の時に私が回答した内容。。
自分でも作ろうとしました。が、、いやーー面倒。。途中で ムリー!! ほっぽり投げました ^^;
 
同様の場合、自分でどうしてるか考えた時
・ファイラーにて、縮小表示をしたまま、Excel側にてファイルを選択
   (特に写真が大きくないと見えない時)
 
・選択済みのファイルを別フォルダに入れる
 
を行っています。
 
実行したい内容は判るのですが、労力に見合わないのですよね。。
なので、運用でどうにかしています。

回答
投稿日時: 18/09/12 11:25:12
投稿者: WinArrow
投稿者のウェブサイトに移動

【写真選択ウィンドー】の続きでしたか?
 
前回の質問と関連する場合は、
リンクを貼ってくださいね・・・
 
ユーザーフォームのリストボックスを使って、
当該フォルダ内のファイルを全部取得してから、
リストボックス選択し、読み込んだファイルに印をつければ
判別できると思います。
 
 
 

投稿日時: 18/09/12 11:35:29
投稿者: つけめん

おふたかた、返信ありがとうございます。
 
すでにマルチセレクトをTrueで複数選択できるのですが
>GetOpenFilenameメソッドで、
>MultiSelect=Trueを指定すればよいです。
 
複数選択(単選択)で【【挿入後】】にも、
写真選択ウィンドーを開きっぱなしにしたいという意味なのです。。。泣
 
 
 

投稿日時: 18/09/12 11:38:52
投稿者: つけめん

WinArrowさん
 
すみませんでした、関連するときもそのようにしたほうがいいということですね。
 
前回頂いた答えに対する対応ができなかったため、
視点を変えて、別の質問としたほうがわかりやすいかと思い
質問させていただきました。
 
ごめんなさい

回答
投稿日時: 18/09/12 15:30:49
投稿者: なと

既に散々言われていますが

引用:
複数選択(単選択)で【【挿入後】】にも、
写真選択ウィンドーを開きっぱなしにしたいという意味なのです。。。泣

思い描いている通りのことを実現するのは無理です。
 
OSやエクセルの用意したダイアログは使わず、自力でダイアログを作る必要が出てきますが結構難易度が高くなると思います。
 
Suzuさんの仰るように、運用面でカバーするのがベストだと思いますが、別のアプローチを提案するとしたら、
Application.GetOpenFilename(Title:="写真を選択", MultiSelect:=True)

などを使って画像のパスを取得して、エクセルに画像を貼り付けた後、下位に「貼り付け済み」フォルダを作成して、貼付け済みの画像ファイルを移動させることで、前に貼り付けた写真の次までスクロールしなくてもすむという方法もあると思います。
 
この方法の欠点は、選択する画像が飛び飛びの場合には有効に働かないということですね。
 
あとこういう方法もあるみたいです。
https://asadakenchiku.amebaownd.com/posts/2141398

回答
投稿日時: 18/09/12 21:54:36
投稿者: simple

私も既定のツールに要望を反映することは難しいと思います。
 
紙を活用してはどうですか?
画面表示されるものと同じ順序(ファイル名の順番なり、更新年月日の順なり)で、
ファイルリストを紙に印刷して、処理が済んだファイルは鉛筆でチェックしておけばいいんじゃないですか?
そうすれば未処理のものを紙でメボシをつけて、
画面上でそのファイルを選択すればいいと思います。

トピックに返信