• ベストアンサー

ExcelのxlDialogInsertPictureで。

エクセルのVBAで、Application.Dialogs(xlDialogInsertPicture).Showを使って、写真取り込む時に、シートにではなく、フォームのImageに直接取り込む方法ってあるのでしょうか? UserForm1.Image1 = Application.Dialogs _(xlDialogInsertPicture).Show とするとエラーになってしまいます。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.1

こんにちは。 Sub test()   Dim x   x = Application.Dialogs(xlDialogInsertPicture).Show   MsgBox x End Sub このように、DialogsのShow メソッドはTrue/Falseしか返しませんので、不向きです。 代替案で GetOpenFilename メソッド を使ってはいけないですか? Dim x x = Application.GetOpenFilename(",*.jpg") If VarType(x) <> vbBoolean Then   Me.Image1.Picture = LoadPicture(x)   Me.Repaint End If

Excel_VBA
質問者

お礼

こんばんわ!! 大変お礼が遅くなり誠に申し訳ありませんでした。 ちょっと、出張に行っていました。 早速、サンプルを使わせて頂きました。希望のものとなりました。 今後とも宜しくお願い致します。

関連するQ&A

  • Excel VBAの組み込みダイアログについて

    ExcelのVBAの組み込みダイアログで、 Application.Dialogs(xlDialogInsertPicture).Show についてですが、ヘルプの組み込みダイアログボックス引数一覧をみると xlDialogInsertPicture file_name、filter_number とあります。 これは、ダイアログボックスの図の挿入で、ファイル名とファイルの種類の引数になると思いますが、 ダイアログボックスの右上に表示される、表示の縮小表示を選択することってできるのでしょうか?また、ファイルの場所の指定ってできるのでしょうか?どなたか、詳しい方いらっしゃいましたら教えてください。よろしくお願いいたします。

  • エクセルVBAのマクロ文について

    エクセルVBAで、シート上のボタン(フォーム)をクリックすると、UserForm1が表示されてその中のTextBoxに別のシートのセルに入力したいる値を表示させたくて、以下のようにボタン(フォーム)にマクロを入力したのですが、エラーがでてきてうまくいきません。 入力したマクロが間違っているのでしょうか? Sub ボタン1_Click() UserForm1.Show UserForm1.TextBox1 = Sheets("入力").Ranges("D11").Value End Sub すみませんが、ご存知の方、教えてくださいませんか?

  • エクセルVBAでファイルの選択(ZIP解凍後)

    エクセルVBAで Application.Dialogs(xlDialogOpen).Show や FileName = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls*")  を使い、ZIPファイル解凍後のエクセルのBOOKを選択させ、開こうとしています。 しかし、解凍後のエクセルファイルは見えるのですが、それを開こうとすると実行時エラー1004になってしまいます。もちろん手動では開くことができます。どのように対応すればよいのでしょうか?

  • フォームを閉じる時はとうすればいいのでしょうか?

    VBAでユーザーフォームを表示するときは、 UserForm1.Show でできますが、 閉じる時はとうすればいいのでしょうか? UserForm1.Closeを実行すると コンパイルエラーになってしまいます。 ちなみにエクセル2007です。 ご教授よろしくお願いします。

  • エクセルVBA テキストボックス

    いつもお世話になっております。 エクセルでVBAを使いユーザーフォームのテキストボックスで 文章入力をしようと思っているのですが、少しトラブルがありましたのでお教え願います。 エクセルシートの横がa~k、縦を9~34までのシートを結合して その中にテキストボックスで入力した文章を入れるように作っています。 MultiLineとEnterKeyBehaviorをTrueにして Private Sub CommandButton1_Click() Unload Me End Sub Private Sub TextBox1_Change() Sheets("sheet1").Range("a9") = UserForm1.TextBox1 End Sub Private Sub UserForm_Initialize() TextBox1.Value = Range("a9").Value End Sub Private Sub UserForm_Activate() With Me .Left = Application.Left .Top = Application.Top .Left = .Left + 350 .Top = .Top + 80 End With End Sub という状態になっているのですが、文章を入力して16行目で改行するとシートの方で「#VALUE!」と出てきてしまうので一旦ユーザーフォームを閉じてもう一度フォームを立ち上げると 「実行時エラー’-2147352571(80020005) Valueプロパティが設定できません。種類が一致しません。」 と出てきます。 デバッグすると  Private Sub CommandButton1_Click() → UserForm1.Show  End Sub と出てきます。 なにがおかしいのでしょうか? 今回初めてVBAを作っているので初歩的な間違いかもしれませんがよろしくお願いします

  • ExcelVBA/ダイアログボックスで選んだファイルのファイル名を取得したい

    ExcelのVBAについて教えてください。 「ファイルを開く」の時に出てくるようなダイアログボックスを表示させ、そこで選択したファイルのフルパス+ファイル名を文字列形式で取得したいのですが、どのようにしたら良いでしょうか? 自分でヘルプファイルもある程度調べてみたのですが、よく分かりませんでした。 最終的には、ワークシート上に画像ファイルを挿入し、その作成日付をセルに表示するようなものを作りたいのですが、 Application.Dialogs(xlDialogInsertPicture).Show では、画像は挿入されるものの、挿入した画像のファイル名を取得できないので、日付が調べられないのです。 宜しくお願いします。

  • エクセルvba アクティブシート以外の範囲指定

    現在エクセルのVBAを勉強中(かなり初心者ですが。。)で、仕事でも使う封筒印刷用のマクロを組んでみようと思っています。 作成したユーザーフォーム内のリストボックスに、宛名一覧を入力したワークシートからデータを引っ張ってきて表示しようと思っているのですが、宛名一覧を記述しているシートがアクティブの際にはうまく動作するのですが、その他のシート(封筒のレイアウトを書き込んでいるシートなど)がアクティブの時には 実行時エラー'1004' アプリケーション定義まてはオブジェクト定義のエラーです。 というエラーが表示され、うまく行きません。 うまく行く方法をご教授いただけたらと思います。よろしくお願いいたします。 ソース(標準モジュールに記述) Sub adrsList() UserForm1.ListBox1.List = Worksheets("address").Range(Cells(Worksheets("address").UsedRange.Rows.Count, 8)).Value UserForm1.Show End Sub ※address:住所録のデータがH列に格納されているワークシートです

  • ExcelのVBAでフォームが表示されない

    Sub フォーム起動() UserForm1.Show End Sub 上記の内容をModule1にしてショートカットキーをを設定し、いつでも他に作ってあるユーザーフォームが起動するようにしていました。しかし先日、久しぶりに使ってみようと、設定したショートカットキーを押したら、VBAもマクロも全くいじっていないにも関わらず、「UserForm1.Show」の部分で「実行時エラー'380': Valueプロパティを設定できません。プロパティの値が無効です。」とエラーが表示されフォームが起動できません。これはいったい何が原因なのでしょうか。

  • 目盛線のダイアログ表示

    エクセルVBAでグラフを自動で描くマクロを作成しています。 グラフの目盛線の書式をユーザーフォームから設定できるように ダイアログを表示したいのですがどのようにしたらよいでしょうか? Application.Dialogs(**).Showの方法で可能ですか? グラフの色の選択はChooseColor()を使おうと思っていますが、 目盛線の書式について同様の方法がありますでしょうか?

  • EXCEL VBA ユーザーフォームを修正するとエラーになります

    いつもお世話になっております。 同じような入力作業の手間を省くため、 Excel VBAでユーザーフォームを作りました。 うまく動作するのですが、更に改良を加え、操作を楽にすることを考えました。 プログラムをまとめ、ユーザーフォームに貼り付けてある ボタンを減らそうとしているのですが、ボタンを削除すると、次そのフォームを表示しようとした時、エラーが出ます。 デバックを押すと、userform.show のところが黄色くなります。 一度できあがってしまったユーザーフォームに改良を加える時(主にそこの部品を減らす時)はどうすればいいのでしょうか。 ぜひ、よろしくお願いします。

専門家に質問してみよう