[[20190114185727]] 『ダイアログボックスで選択肢』(前) ページの最後に飛ぶ

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

 

『ダイアログボックスで選択肢』(前)

お世話になります。

ダイアログボックスで、例えば

メッセージ ”何を作成しますか?”

選択ボタン ”資料1” ”資料2” ”資料3”

選択したボタンで任意のファイルを開く

このような処理は可能でしょうか。

よろしくお願いします。

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


「任意のファイル」がExcelブックなのか、そうでないのかでちょっと変わってきますが、マクロを使えばできそうですね。

(もこな2) 2019/01/14(月) 19:31


コメントありがとうございます。
任意ファイルはエクセルです。

 >マクロを使えばできそうですね。 

どのような形になりそうですか?

ダイアログボックスでできるかなと使ったことがあるMsgBoxとInputBoxを調べてみましたが、質問内容のような使い方はできないのかなぁと。(間違えてたらすみません。。。)

本当に初心者なので複雑な処理のようでしたら別の手段を考えてみます。

(前) 2019/01/14(月) 19:45


>任意ファイルはエクセルです。

だとすると、聞くより調べるほうが早いかもですね。

 代理検索
キーワード「VBA ダイアログボックス」
https://www.moug.net/tech/exvba/0060013.html
http://officetanaka.net/excel/vba/file/file02.htm

(もこな2) 2019/01/14(月) 19:56


失礼、回答をまちがえました
ブックを開くのはこっちですね。
http://officetanaka.net/excel/vba/file/file01.htm

あとは、オリジナルの「ダイアログ」を作成する必要があるでしょうから、ユーザーフォームについて調べてみるとよいかもです。
http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_080.html
(もこな2) 2019/01/14(月) 20:01


やっぱり調べ方が悪かったんですね。。。
もなこ2さん、参考サイトありがとうございます。m(_ _)m
ゆっくりちまちまやってみます。
(前) 2019/01/14(月) 20:02

 ユーザーフォームを使う場合
ラベル1
ボタン4個(1個は終了用)などデザインで配置して
モードレスで起動すれば
開いたBOOKも編集できますよ。
閉じればまたフォームで選択可能だと思いますよ。
もこな2
さんのご紹介のページを参考にされれば、比較的、
簡単に実装出来るみたいですよ。

 1.資料1〜3と同じフォルダに基本のマクロブックを作成
 2.起動時に作成したユーザフォームをモードレスで表示
 3.各コマンドボタンに資料?を開くマクロを記述

 他にも様々な方法が有るかもですが、
とりあえず
みたいな感じでしょうか。
(隠居じーさん) 2019/01/14(月) 23:49

おはようございます。
手順ありがとうございます。
参考にしてやってみます。
(前) 2019/01/15(火) 06:47

 おはようございます ^^
お望みのものではないかもしれませんが。。。何かの足しにでも。
BASE.xlsmに
ユーザーフォームを挿入
ラベル1個
ボタン4個(1個は終了用)などデザインでテキトーに配置。^^;
各、オブジェクト名は下記コード(UserForm_Initialize。。。参考)
の名前と同じにしてくださいね。
デザインでトラブルとCommandButton3のつもりが
CommandButton16.。。。とかになってたりすることも無いとは言えない。
私だけかも A^_^;

 使用ファイル(同フォルダに置く)

 BASE.xlsm
 資料1.xlsx
 資料2.xlsx
 資料3.xlsx

 BASE.xlsmの
 ThisWorkbook  モジュール

 Option Explicit
 Private Sub Workbook_Open()
    Load UserForm1
    UserForm1.Show vbModeless
 End Sub

 UserForm1 モジュール

 Option Explicit
 Private Sub CommandButton1_Click()
    Workbooks.Open ThisWorkbook.Path & "\" & "資料1"
 End Sub
 Private Sub CommandButton2_Click()
    Workbooks.Open ThisWorkbook.Path & "\" & "資料2"
 End Sub
 Private Sub CommandButton3_Click()
    Workbooks.Open ThisWorkbook.Path & "\" & "資料3"
 End Sub
 Private Sub CommandButton4_Click()
    Unload Me
    Application.Quit
    ThisWorkbook.Close False
 End Sub
 Private Sub UserForm_Initialize()
    Me.Label1.Caption = "何を作成しますか?"
    Me.CommandButton1.Caption = "資料1"
    Me.CommandButton2.Caption = "資料2"
    Me.CommandButton3.Caption = "資料3"
    Me.CommandButton4.Caption = "終了"
 End Sub
(隠居じーさん) 2019/01/15(火) 07:57

 Load UserForm1
は別に無くてもいいようですね。^^;
m(_ _)m

(隠居じーさん) 2019/01/15(火) 08:02


隠居じーさんさんとほとんど変わりませんが、
ユーザーフォーム(UserForm1)にコマンドボタンを3つ用意して
 「CommandButton1」の Caption → 資料1
 「CommandButton2」の Caption → 資料2
 「CommandButton3」の Caption → 資料3

としておいてから、

【標準モジュール】

    Sub オリジナルダイアログ()
        UserForm1.Show
    End Sub

【フォーム(UserForm1)モジュール】

    Private Sub CommandButton1_Click()
        Call ファイルオープン("資料1.xlsx")
    End Sub
    '--------------------------------------
    Private Sub CommandButton2_Click()
        Call ファイルオープン("資料2.xlsx")
    End Sub
    '--------------------------------------
    Private Sub CommandButton3_Click()
        Call ファイルオープン("資料3.xlsx")
    End Sub
    '--------------------------------------
    Private Sub ファイルオープン(ファイル名 As String)
        Workbooks.Open "C:\aaa\bbb\" & ファイル名
        Unload Me
    End Sub

あとは、なんらかの方法で「オリジナルダイアログ」を作動させるようにすれば希望の形になるようにおもいます。

(もこな2) 2019/01/15(火) 12:05


コメント返信:

[ 一覧(最新更新順) ]


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