![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ExcelのVBAの組み込みダイアログで、
Application.Dialogs(xlDialogInsertPicture).Show
についてですが、ヘルプの組み込みダイアログボックス引数一覧をみると
xlDialogInsertPicture file_name、filter_number
とあります。
これは、ダイアログボックスの図の挿入で、ファイル名とファイルの種類の引数になると思いますが、
ダイアログボックスの右上に表示される、表示の縮小表示を選択することってできるのでしょうか?また、ファイルの場所の指定ってできるのでしょうか?どなたか、詳しい方いらっしゃいましたら教えてください。よろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは。
>Application.Dialogs(xlDialogInsertPicture).Show
これは、もともと、古い形式のダイアログですから、細かな機能はありませんので、必要なら、
Application.CommandBars.FindControl(, 2619).Execute
を使えばよいです。
>Windowsのパスの設定って、VBAからでも出来るのでしょうか?
みなさん、ChDir を使っているようですが、開く時に、環境変数かレジストリかを読んでいるので、無理ではないかと思います。
その変数のパスは、[マイピクチャー]だと思いますが、手動で換えることは可能ですが、VBAは知りません。
http://arena.nikkeibp.co.jp/article/tec/winxp/20 …
No.3
- 回答日時:
質問の主旨が良くわからない
(1)Application.Dialogsの引数の指定の仕方か
(2)表示の縮小表示を選
なのか
ーー
(1)はApplication.Dialogs(xlDialogInsertPicture)の引数指定については色々やったが不達成。引数を指定しても、ダイアロウグの「ファイル名」にセットできず。
xlDialogOpenでは、Application.Dialogs(xlDialogOpen).Show(Arg:="*.xls")などできるようだが。
WEBも調べたが、この点に触れているもの見つからず、断念。
(2)もしセルÅ1にセルの大きさに合わせて画像をセットすればよいのなら、下記を実行してみてください。
そういう問題でなければ、すみません、無視してください。
A1セルの大きさを少し大きい目にして実行すること。
MsgBoxは確認のため入れているが、用済み後は削除してください。
A1をcells(i,j)で相対化すれば、人手操作で選択した画像を、A1->A2->A3・・
と順次場所をヅラして、セットできると思う。
フォルダ指定の下記XXXまたは全体は適当に自分に合わせて修正をしてください。
Sub test01()
ChDir ("C:\Documents and Settings\XXX\My Documents\My Pictures\")
Application.Dialogs(xlDialogInsertPicture).Show
x = Selection.Name
MsgBox x
Worksheets("Sheet1").DrawingObjects(x).Select
MsgBox Selection.Name
Selection.Top = Worksheets("Sheet1").Range("A1").Top
Selection.Left = Worksheets("Sheet1").Range("A1").Left
Selection.Width = Worksheets("Sheet1").Range("A1").Width
Selection.Height = Worksheets("Sheet1").Range("A1").Height
End Sub
この回答への補足
セルの大きさに合わせて写真を調整する部分のマクロは既に出来ています。今回質問したのは、その前の挿入の状態部分でした。言葉たらずですみません。
下記のマクロを拡張させようと考えています。(今回の質問とは直接は関係ありません)
Sub 位置補正()
'これがアドイン用
Dim RangeTop As Integer
Dim RangeLeft As Integer
Dim RangeHeight As Integer
Dim RangeWidth As Integer
Dim PictureTop As Integer
Dim PictureLeft As Integer
Dim PictureHeight As Integer
Dim PictureWidth As Integer
Dim Range_HW_Ratio As Single
Dim Picture_HW_Ratio As Single
If TypeName(Selection) = "Picture" Then
RangeTop = Selection.TopLeftCell.MergeArea.Top
RangeLeft = Selection.TopLeftCell.MergeArea.Left
RangeHeight = Selection.TopLeftCell.MergeArea.Height
RangeWidth = Selection.TopLeftCell.MergeArea.Width
PictureTop = Selection.Top
PictureLeft = Selection.Left
PictureHeight = Selection.Height
PictureWidth = Selection.Width
ThisWorkbook.Worksheets("設定値").Range("B2").Value = PictureTop
ThisWorkbook.Worksheets("設定値").Range("B3").Value = PictureLeft
ThisWorkbook.Worksheets("設定値").Range("B4").Value = PictureHeight
ThisWorkbook.Worksheets("設定値").Range("B5").Value = PictureWidth
Selection.Top = RangeTop
Selection.Left = RangeLeft
Range_HW_Ratio = RangeHeight / RangeWidth
Picture_HW_Ratio = PictureHeight / PictureWidth
If UserForm1.OptionButton1.Value Then
If Range_HW_Ratio > Picture_HW_Ratio Then
'横に合わせる
Selection.Width = RangeWidth
Selection.Height = Int(RangeWidth * Picture_HW_Ratio)
Else
'縦に合わせる
Selection.Height = RangeHeight
Selection.Width = Int(RangeHeight / Picture_HW_Ratio)
End If
Else
Selection.Top = RangeTop
Selection.Left = RangeLeft
Selection.Height = RangeHeight
Selection.Width = RangeWidth
End If
End If
End Sub
No.2
- 回答日時:
こんにちは。
回答ではありませんので、申し訳ないのですが、通常のVBAでは、両方とも出来ないと思いますね。
・ファイルの場所の指定ってできるのでしょうか?
xlDialogInsertPicture は、組み込みダイアログの「図の挿入」は、OS のWindows の環境定数のPath を読んでいるからで、元を変えないとダメだと思います。だから、GetOpenFileName などのほうが楽だと思います。
・ダイアログボックスの右上に表示される、表示の縮小表示を選択する
最大化・最小化ボタンなどは、標準的には、これらのダイアログには付いておりません。あえてつけるなら、おそらく、API関数によってつけると思いますが、これらのダイアログ・メソッドは、Excel Application のメンバにあり、開いている状態では、入力待ちのWaiting になっていますから、マクロが停止した状態になってしまいます。
UserForm のように、Excel本体とオブジェクトとして分離してくれません。
問題は、その必要性のような気がします。例えば、開いて閉じてを繰り返したくないからだとしても、FileName を取った後の問題も考えると、また、図の挿入に関しては、Wordほどではありませんが、Excelでも、その後の位置決めなども必要なので、単に入り口の部分だけでは、全体的に簡単にはすまないような気がします。
この回答への補足
質問の仕方が悪くてすみません。縮小表示とは、図の挿入のダイアログボックスのツール(L)の左にある表示のボタンの中にある縮小表示のことです。表示の中には他に、並べて表示、アイコン、一覧、詳細、プロパティ、プレビューなどがあります。
これを選択するって出来るのでしょうか?
また、Windowsのパスの設定って、VBAからでも出来るのでしょうか?重ね重ね質問をして申し訳ありません。
No.1
- 回答日時:
ファイルの場所の指定は
Call ChDir("c:\")
Application.Dialogs(xlDialogInsertPicture).Show
とします
縮小表示を選択することってできるのでしょうか?
わかりません
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
”挿入”がグレーアウトして選択...
-
複数のエクセル・ワードファイ...
-
pdfファイルに雲マーク
-
拡張子がemzのファイルを開きたい
-
複数の画像ファイルを挿入したい
-
ファイルやフォルダーにリンク...
-
powerpointファイルが開けない
-
wordで別々に作ったファイルを...
-
複数頁のあるPDFファイルをWord...
-
Power pointに写真の貼り付けが...
-
AccessのOLEオブジェクトについて
-
ワードの任意ページを他のワー...
-
ワードのクリップアートを挿入...
-
画像の挿入とコピーの違いについて
-
Wordの複数ファイルの結合方法
-
画像がエクセルに直接貼り付け...
-
エクセルでwmfファイルが挿入で...
-
メールで送ってきた画像ををwor...
-
word上の図の赤バツ
-
ワードで、文章ファイルを合体...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
”挿入”がグレーアウトして選択...
-
複数のエクセル・ワードファイ...
-
wordで別々に作ったファイルを...
-
ファイルやフォルダーにリンク...
-
Power pointに写真の貼り付けが...
-
複数頁のあるPDFファイルをWord...
-
手の形のカーソルアイコンについて
-
拡張子がemzのファイルを開きたい
-
AccessのOLEオブジェクトについて
-
Excel:1つのセルの中にテーブ...
-
word上の図の赤バツ
-
複数の画像ファイルを挿入したい
-
Word文書の2ページ分を1ページ...
-
画像の挿入とコピーの違いについて
-
pdfファイルに雲マーク
-
Word ヘッダーの異なったファ...
-
ワード 書式を崩さずにコピー...
-
画像がエクセルに直接貼り付け...
-
WORD:リンク挿入した画像のリン...
-
Wordで他のファイルから文字列...
おすすめ情報