エクセルVBAで他アプリケーション任意ファイルを読み込む方法

このQ&Aのポイント
  • エクセルVBAを使用して、他のアプリケーションの任意のファイルを読み込む方法について教えてください。
  • 具体的には、ワードやロータス、三四六などさまざまなファイルを読み込みたいのですが、JXW.applicationを変更することで可能なのでしょうか。
  • また、ファイルを読み込んだ際に画面下にメニューアイコンの形で表示されることがあるので、画面サイズの制御方法も知りたいです。
回答を見る
  • ベストアンサー

エクセルVBAで他アプリケーション任意ファイルの読込法

エクセルで下記のVBAで一太郎が起動し、任意のファイルを読み込めます。 ワード、ロータス、三四六など同様に読み込みたいのですが、 多分"JXW.application"を変更すれば良いと思うのですが、それぞれどうすれば よいのでしょうか。また、現在この方法で読み込んだ時、画面下にメニューアイコンの形で読み込まれることがあります、画面サイズの制御法を教えてください。 さらに"JXW.application"に相当する情報は、何に記載されているのでしょうか。 Dim Taro As Object Set Taro = CreateObject("JXW.application") Taro.Visible = True Taro.documents.Open "ドライブ名:ファイル名.拡張子" なにぶんVBAについて素人なので、よく理解しておりませんので、宜しく ご教示願います。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

wordは、 set a= CreateObject("word.application") ですね。 Lotus,三四郎については、今手元に環境が無いんで、不明です。 どのように知るかですが、まず、Lotusや三四郎のマクロのヘルプ、仕様書があれば書いてある可能性があります。 それらの資料から見つけることが出来なければ、VBAのエディタの画面で、[ツール]-[参照設定]すると、組み込み可能なオブジェクトの一覧が表示されますので、まず、これを使って、該当するオブジェクトを組み込んでみます。(Wordなら、Microsoft Word 9.0 Object Libraryです。) で、 dim new とか打ち込んでやると、組み込み可能なオブジェクトの一覧が表示されますが、そっから見当をつけるといいです。 一太郎の画面サイズの変え方ですが、これも一太郎のマクロ関係のヘルプに記述が無いのであれば、上記の「参照設定」を使って調べるしかないですね。 参考までに、Word文書を最大化の状態で開くには、(「参照設定」Wordの機能を組み込んでから) Dim WordApp As New Word.Application WordApp.WindowState = wdWindowStateMaximize WordApp.Visible = True のようにします。 理解の助けのために、参照設定を使わないバージョンも書いてみました。 Dim WordApp As Object Set Wordapp = CreateObject("Word.Application") WordApp.WindowState = wdWindowStateMaximize WordApp.Visible = True

kmasumi
質問者

お礼

ありがとうございました。 種々のファイルに、説明文を付けて、エクセルで管理しようと考えました。 土日に書店で立ち読みし、ワード、エクセルは分かりました。 三四六、ロータスは、いろいろ調べたり試したりしましたが未だに分かりません。 また宜しくお願いします。

その他の回答 (1)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.2

>種々のファイルに、説明文を付けて、エクセルで管理しようと考えました。 これに関しては、すべてのアプリケーションで同様の操作が可能、というわけではないです。 あくまで、「対応したアプリケーション」が対象です。 ロータスや三四六は多分対応していると思いますが。 先日、Lotus1-2-3のかなり古いバージョンを触る機会があったのですが、その時の感触から言うと CreateObject("lotus123.application") あたりが臭そうです。 詳しくは、前述の「参照設定」を使った方法でお試しください。

kmasumi
質問者

お礼

ありがとうございました。 私のパソコンに123が現在インストールされていないので、 今は、確かめることができませんがやってみようと思います。

関連するQ&A

  • VBAで既に開いている別アプリケーションのオブジェクトを得る

     VBAで別のアプリケーションにアクセスするには、CreateObject関数を使ってアプリケーションのオブジェクトを作るようにすると思います。例えば、ワード文書にアクセスするなら次の構文になると思います。   Set appWord = CreateObject("Word.Application")   appWord.Visible = True  しかしこれだと新しいワード文書を作ったり、既存のワードファイルを開いて扱うことしかできません。GetObject関数を用いても同様のようです。既に別ウィンドウで開いているワード文書があって、そこへアクセスするにはどうしたらよいのでしょうか。  また、同じアプリで複数のファイルを開いている場合には、どうやって目的のファイルへのオブジェクトを得るのでしょうか。(ファイル名などを参照して判断?)

  • エクセルから現在起動しているアクセスファイルをアクティブにしたい

    現在エクセルとアクセスを開いています。 エクセルマクロで現在開いているアクセスをアクティブにしたいのですがうまくいきません。 Sub アクセスをアクティブにする() Dim app As Object Set app = CreateObject("Access.Application") app.Application.Visible = True app.Visible = True End Sub これを実行すると新たに空のアクセスアプリケーションが開きます。 (app.Application.Visible = True)を抜いても同じです。 現在起動中のアクセスファイル(○○○.mdb)をエクセルからアクティブにするにはどうすればいいのでしょうか? ご教授よろしくお願いします。

  • パスワード付のエクセルファイルをアクセスから開く方

    アクセスからエクセルのファイルを開きたいのですがうまくできません。 エクセルにはパスワードがかかっています。 なので Dim xlApp As Object Dim xlWbk As Object Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True Set xlWbk = xlApp.Workbooks.Open("C:\2010.xlsx", , , , Password:="0000") Set xlApp = Nothing としたのですが、エクセルファイルが立ち上がりパスワード入力画面が表示されます。 , , , , Password:="0000" が無視されているようです。 パスワード付のエクセルファイルをアクセスから開く方法をご教授ください。

  • VBAで既存のパワポのファイルを開くには?

    アクセスやエクセルからVBAで既存のパワポのファイルを開くには? 参照設定をして、 Sub test() Dim App As PowerPoint.Application Dim MyFileName As String Set App = CreateObject("PowerPoint.Application") MyFileName = CurrentProject.Path & "サンプル.ppt" App.Visible = True Set App = Nothing End Sub を実行すると、パワポの空のアプリケーション開きますが肝心のファイルが開きません。 開く方法を教えてください。

  • エクセル アプリケーションの待機時間を設定したい

    VBAで Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(MyFileName) のあとに、 xlApp.Visible = True ココを通過するときに、3分くらい経ってから 「ソースアプリケーションがビジー状態のため、オブジェクトが応答しません。」 と表示される時があります。 このメッセージが表示されるまでの時間を設定したいのですが そのようなVBAコードはありますか?

  • ACCESS2013のVBAで、EXCELを操作

    ご質問させて頂きます。 ACCESS2013のVBAで、EXCELを操作するために 下記のようにしています。 ------- Dim oApp As Object Dim oWkb As Object Dim oWks As Object Dim Rw As Integer Dim SQL As String Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 ↓↓↓オートメーションエラー Set oWkb = oApp.Workbooks.Open(CurrentProject.Path & "\ひながた.xls") ------- 上記のところでオートメーションエラーになってしまいます。 しかし私の端末ではエラーは出ません。 問題と思われるのは エラーが出る人の端末は、 EXCELが2010と2013と 2つのバージョンがインストールされていることです。 このようなことでエラーが出てしまうことはあるのでしょうか?

  • エクセルのVBAで最終行までループする方法

    エクセルのVBAで最終行までループする方法を教えてください。 下記がコードになります。 Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate Range("A1").Value While objIE.ReadyState <> 4 Or objIE.Busy = True DoEvents Wend Range("B1").value = objIE.Document.all("zoom1").href

  • vba 読み取り専用で他のファイルを開くには

    エクセルvbaで他のエクセルファイルを読み取り専用で開きたいのですが 「読み取り専用で!」とするにはどうすればいいですか? 今のままだとエラーになります。 ------------------------- Sub a() Set App = CreateObject("Excel.Application") Set xlBook = App.Workbooks.Open(MyFileName) With App .Visible = True .ReadOnly '実行時エラー438 End With Set App = Nothing End Sub

  • ACCESS VBA からのワードファイルの起動

    ACCESS97を(未だに!)使用しています。 これから、VBAでワードの既存ファイルを起動したいと考えています。その際、ワードを新規に立ち上げることなく、表示して編集したいわけですが、どうしても新規に起動してしまします。 これまで試したのは、 Dim oApp As Object Set oApp = GetObject("", "word.Application") oApp.Visible = True oApp.Documents.Open FileName:="C:\filename.doc" および Dim oApp As Object Set oApp = CreatObject("word.Application") oApp.Visible = True oApp.Documents.Open FileName:="C:\filename.doc" などです。 しかし、すでにワードが起動していても、どうしても、新たにワードを立ち上げてしまいます。 解決策はあるでしょうか? ちなみにエクセルだと、GetObject で既に起動しているエクセルに追加でアプリが表示されます。

  • エクセル VBA で IE操作 

    エクセルVBAにて IEを操作し リンクをクリックするには どのような記述になりますでしょうか? たとえば http://okwave.jp/mypage へアクセスし画面右上 カテゴリ をクリック 次に Excel(エクセル) をクリック という具合に 画面に表示されている文字を順番にクリックしたいです。 マクロを見つけてきましたが クリックというのはどう記述していいやらさっぱりです。 Sub testIE() Dim objIE As InternetExplorer 'IEオブジェクトを準備 Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット objIE.Visible = True 'IEを表示 objIE.navigate "http://okwave.jp/mypage" 'IEでURLを開く Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち DoEvents Loop

専門家に質問してみよう