• ベストアンサー

ExcelVBAについて

ExcelVBAについて Excel VBA初心者です。 やりたいことを説明しますと、 フォームA上に、テキストボックスBとコマンドボタンCがあるとします。 テキストボックスBにはMPGファイルのフルパスが既に入力されており、コマンドボタンCを押すとテキストボックスBのファイルを開けるようにしたいのです。 お手数ですが、よろしくお願いします。

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

  • ベストアンサー
回答No.2

>半角スペース 仮に c:\A B.text だとします。 C:\A フォルダに B.txtという引数を渡した状態を実行されていることになってしまうようです。 ですのでC:\Aフォルダが存在しなければエラーが発生し、存在している場合はフォルダが開きます。 コマンドをダブルクォーテーションで囲む事によって回避できます。 Private Sub CommandButton1_Click()   Dim l_strCmdOld As String   Dim l_strCmdNew As String      '以前のコマンド   l_strCmdOld = Me.TextBox1.Text   '今度はダブルクォーテーションで文字列を囲む   l_strCmdNew = """" & Me.TextBox1.Text & """"      MsgBox _       "以前のコマンド" & vbTab & l_strCmdOld & vbCrLf & vbCrLf & _       "新たなコマンド" & vbTab & l_strCmdNew   Call CreateObject("WSCript.Shell").Run(l_strCmdNew) End Sub

uribou7
質問者

お礼

半角スペースが入っているファイルも開けました!ありがとうございますした!

その他の回答 (1)

回答No.1

Private Sub CommandButton1_Click()   Call CreateObject("WSCript.Shell").Run(Me.TextBox1.Text) End Sub

uribou7
質問者

お礼

ありがとうございました!ちゃんとできました!

uribou7
質問者

補足

半角スペースが入っているファイルでは、エラーが発生するのですが、なぜですか? すみませんが、よろしければこちらもお願いします。

関連するQ&A

  • excelVBAのフォームでカーソルの位置を指定するには?

    excelのVBAでフォームを作ってます。 フォームを開いたときにカーソルはタブオーダーの一番最初に来るのはokなんですが、入力内容をシートに転記したあと、入力内容をクリアし、カーソルをタブオーダーの2番目にもってきたいんです。入力内容の転記とクリアはコマンドボタンで実行させていますが、カーソルを希望するテキストボックスに移動させるのはどうすればいいのでしょうか。

  • ExcelVBAでユーザーフォームが勝手に閉じてしまいます。

    ExcelVBAでユーザーフォームが勝手に閉じてしまいます。 ExcelVBAを独学で始めてまだ2週間足らずの超初心者です。 Excelワークシートにコマンドボタン配置してそのコマンドボタンを押すとユーザーフォーム1が開き、ユーザーフォーム1に配置してあるリストボックスからリストをダブルクリックで選択すると、ユーザーフォーム2が開くように設定しています。ただ、ユーザーフォーム1のリストをダブルクリックして選択した時点でユーザーフォーム1が勝手に閉じてしまいます。ユーザーフォーム1を勝手に閉じさせないでコマンドボタンで閉じるようにしたいのですがどうしたらよいのでしょうか。レベルの低い質問かもしれませんが困っています。宜しくお願い致します。

  • VBE、ユーザーフォームに関して質問があります。VBAを知って1カ月に

    VBE、ユーザーフォームに関して質問があります。VBAを知って1カ月に満たない初心者です。 ユーザーフォームでテキストボックスとコマンドボタンを1つずつ作りました。コマンドボタンを押すとテキストボックスに入れた文字・値がセルB1に入力されるようにしました。続けてテキストボックスに文字・値を入力し、コマンドボタンを押すとB2に入力されるようにしています。 ここからが質問なのですが、 コマンドボタンを押したときにA1に番号を順にふり、さらにセルを罫線で囲みたいのです。図で示すと、  A   B        A   B  _ ___      _ ___  |1|りんご| ⇒ |1|りんご|  - ---      - ---               |2|みかん|                - ---   このような感じです。また、外枠のみを太線にするということが可能であればその方法も教えて下さい。

  • VBAのループ処理

    エクセルVBAにてテキストボックス、ラベルが複数ある フォームで入力ボタンを(コマンドボタン)クリックした時に 指定した複数のテキストボックス、ラベルをループ処理で空白に したいのですが どのようにすればいいでしょうか?

  • ネットワークフォルダー検索

    ExcelVBAで教えてください。 ネットワークの共有フォルダーに多くのフォルダーがあります。 その、フォルダーの中にはEXCELファイルが入っています。 ユーザーフォームにテキストボックスとボタンを配置して テキストボックスに入力してボタンを押して、先程のネットワークの 共有フォルダーを検索し、ファイル一覧表示し、EXCELファイル を選択して表示したいのですが、書き方が分かりません。 教えてください。 宜しくお願いします。

  • VBについて

    Visual Basicで1つのオブジェクトの中にフォームを2つ作った時、片方のフォームに入力した情報を処理し、もう1つのフォームでその結果を見るにはどうすれば良いのでしょうか?  例えば、1つのフォームにテキストボックスAとコマンドボタンを貼り付け、もうひとつにテキストボックスBを貼り付けて、テキストボックスAにXと入力し、コマンドボタンを押すとテキストボックスBにYと入力されるような事です。  分かる方、是非教えてください。

  • ExcelVBAに代わるツールをお教えください。

    ExcelVBAで、フォームを作ってGUI入力で帳票を作成しています。しかし、ExcelVBAだとExcelモバイルでは使えません。出来ればモバイル端末で出先でも入力できるようにしたいと思っています。Excel操作に慣れていない人も多いためGUIでのラジオボタンとか、プルダウンとか、ユーザーインターフェースを簡単にして手打ち入力はタブレット(スマホ)的な入力で簡単なものができれば良いと考えています。お金を出せばFileMakerなどもありますが、それなりの投資も必要です。また、ExcelだとONEDRIVEで共有できると言うメリットもありますし、外出先でも使えます。ただVBAは使えません。そこがネックになっています。簡単にExcelへの出力ができるようなツールは無いでしょうか? 一つ気になるのはGoogleのスプレッドシートです。スクリプトが組めるので良いのですが、GUIでの入力ができて、尚且つExcelと完全に互換性が有れば良いのですが、以前は確かアンケート用のフォームが有った程度だったのと、Excelにするとレイアウトが崩れたと言う気がするのですが。改善されていれば、Googleと言う選択肢も有るのかと思っております。他にも何かあればお教えください。

  • コンボボックスの自動更新について

    コンボボックスの自動更新について エクセルのVBAで、ユーザーフォームを使用しています。 ユーザーフォームの中には「入力」ボタンとコンボボックスと テキストボックスがあります。 コンボボックスは、「ABCDEF」と6つのリストがあります。 ユーザーフォーム起動時には、コンボボックスは空欄で コンボボックスから、入力したい商品を選んで、入力ボタンを押して コンボボックスとテキストボックスの内容を入力・コンボボックスを 空欄に戻しています。 これを、「A」を選んで入力ボタンをおしたら「B」が選ばれる。 「B」を選んで入力ボタンをおしたら「C」が選ばれるといったように コンボボックスに表示されるリストを自動で更新することは できないでしょうか? Select case などを利用して組み立てようとしたのですが、 数時間以上調べても出来ません。 教えていただけると助かります。

  • ユーザフォーム(VBA)で入力した内容をシートへコピーするには

    ユーザフォーム(VBA)でテキストボックスとボタンを作成しました。 このテキストボックスに入力した内容をボタンを押すことでシート1のA1セルにコピーしたいのです。こんな簡単な感じなのですが、 プログラムはどのようにしたらよいのでしょうか?教えてください。 それと、このエクセルファイルを開き、マクロを有効にするのボタンを押すと思うのですが、そのときにすでにユーザフォームが表示されているようにしたいのですが・・・どうすればいいのでしょうか? ※できたらでよいのですが、もう一つボタンを作成し『クリア』ボタンということで、テキストボックスに入力した内容だけをクリアさせるボタンも作ろうとおもうのですが、それはどうしたらよいのでしょうか? 困っています。教えてください。

  • EXCEL VBAのユーザーフォームの操作方法について教えていただきたいことがあります

    EXCEL VBAのユーザーフォームの操作方法について教えていただきたいことがあります。 (1)ユーザーフォームにテキストボックスを2つ作る (2)コマンドボタンを1つ作る。 この場合に、コマンドボタンを押すと、セットフォーカスされている方のテキストボックスに「新春」と表示させることはできるのでしょうか。 キーボードは当然セットフォーカスされているテキストボックスに入力されますが それと同じ機能をコマンドボタンにも持たせたいのです。 Private Sub CommandButton1_Click() で TextBox1がセットフォーカスされているならTextBox1に"新春"と入力する TextBox2がセットフォーカスされているならTextBox2に"新春"と入力する というような条件式になるのでしょうか。 色々調べましたが答えが見当たりません。 よろしくお願いいたします。

専門家に質問してみよう