• ベストアンサー

VBAしか使用しないExcelのファイルサイズを軽くしたい

VBAしか使用しないExcelのファイルサイズを軽量化するにはどうすればよいのでしょうか? 作成したVBAはExcelファイルを開くとInputBoxのダイアログが表示され、 そこにアドレスを入力するとブラウザが開いてそのページを表示します。 ちなみに、ブックのシートは1つだけにしてあり、セルには何も入力していません。 無駄なモジュールはなく、Excelファイルは直接ダブルクリックして開きたいので圧縮は不可です。 これ以上ファイルサイズを減らすことはできるのでしょうか? ご存知の方がおられましたらご回答をよろしくお願いします。 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 1. VBA の編集を繰り返すとファイルサイズが肥大化する(らしい)   モジュールをエクスポートし、新規ブックなどにインポート   し直すとサイズが軽くなるようです。 2. VBS(*.vbs)にする(別案)   内容によりますが、ご質問に書かれている動作だけなら VBS でも   実現できます。一例です。 ' // Test.vbs (メモ帳などに貼り付け拡張子 VBS で保存) Dim s s = InputBox("URL","TEST SCRIPT") Dim Shell Set Shell = WScript.CreateObject("Wscript.Shell") Call Shell.Run (s, 1)   数行のプレーンテキストに過ぎませんので、1KBも無いです。

nana_watuki
質問者

お礼

VBSというファイルで作成して実行したところ問題なく動作しました。 元々20KBあったファイルサイズが1KB以下になり、かなり軽量化されました。 ご回答いただきどうもありがとうございました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >これ以上ファイルサイズを減らすことはできるのでしょうか? だったら、Excelを使わなければよいのでは? メモ帳で、以下のコードで、例えば、OpenURL.HTA というファイル名をつけて、デスクトップでも置いてあげればよいです。(できれば、ショートカットにしたほうが良いです。なくすときがありますから。)そして、必要なら、その中に、URLを入れておいてもよいです。 例:(以下参照) <A href="http://okwave.jp/">OKWave</A> だいたい、以下ですと、850バイト強(URLのリンク先を入れなければ、700バイト程度です)です。Excelファイルで、何も入れないデフォルト状態で、約16倍の、13.5KBです。IE5.5 以上の環境だったら、Excelがなくても、動かせるはずです。後は、ダブルクリックすれば、ファイルが開きますので、テキストボックスに入れてボタンをクリックするか、リンクをクリックすればよいです。なお、http:// は省略しても良いです。 '------------------------------- <html> <head> <title>OpenURL HTA</title> <HTA:APPLICATION BORDER="thick" BORDERSTYLE="sunken" CAPTION="yes" MAXIMIZEBUTTON="YES" MINIMIZEBUTTON="YES" WINDOWSTATE="normal" /> </head> <SCRIPT LANGUAGE="VBScript"> Call Window.ResizeTo(500,400) Sub GoWeb Dim strURL If T1.Value ="" Then Exit Sub If InStr(1, T1.Value, "http://",1) = 0 Then strURL = "http://" & T1.Value Else strURL = T1.Value End If With CreateObject("InternetExplorer.Application") .Visible =True .Navigate strURL End With End Sub </SCRIPT> <body> <p><font size="3">URLを入れてください。</font> <input type="text" name="T1" size="50"> <input type="button" value="Click" onclick=GoWeb()> </p> <br> <font size="2"> <A href="http://okwave.jp/">OKWave</A> <br> <A href="http://oshiete.goo.ne.jp/">教えて!goo</A> </font> </body> </html> '---------------------------------------

nana_watuki
質問者

お礼

こちらの方法だとCSSで装飾したりすることができるので 見た目をデザインしたいときなどは重宝しそうです。 VBScriptはいろいろと便利そうなので少し学習しておこうと思います。 ご回答いただきどうもありがとうございました。

関連するQ&A

  • Excel VBA Dialogsheet

    現在Excel2002を使用しています。 かなり以前に作ったと思われるブックににVBAが入っていて、ソース を見たところ、 DialogSheets("通常入力").Show というコードがありました。 「通常入力」というダイアログを編集したいのですが方法が分かりません。 旧いExcelで読み込まなくてはできないのでしょうか。 もしExcel2002で編集する方法があるのであればお教え頂ければ助かります。

  • Access-VBAでExcelファイルを作成する。

    こんにちわお世話になります。 「Excelにエクスポート」ボタンをクリックすると、Inputboxか何かが表示されて、Pathやファイル名やシート名を入力し、「実行」ボタンを押すと、新規にExcelのBookを、そのPath、ファイル名、シート名で作成する。その後、そのシートにデータを書き込むという作業をしたいのです。 AccessのデータをExcelの任意のシートを開いて書き込むという部分のVBAコードはわかりますので、新規Book作成部分のコードがわかるかたお願いします。 Office97を使用しています。

  • Perlでエクセルの「名前をつけて保存」ダイアログを表示する方法を教えてください

    PerlのWin32::OLEモジュールを使用してMS-Excelファイルを作成しています。 作成したExcelファイルを $book->SaveAs("ファイル名");のように記述して保存はできるのですが、 「名前を付けて保存」ダイアログボックスを表示して保存先を指定できるようにしたいのですが可能でしょうか? VBAでは、「Application.GetSaveAsFilename」で表示できるようですが、PerlのWin32::OLEモジュールでも同じように表示出来ないでしょうか?

  • Excel VBA ブックが閉じれない

    Excel2016を使用してVBAを使用しています。 VBA初心者ですが、よろしくお願いします。 質問内容は以下になります。 EXCEL起動と同時にUserFormを表示させ、UserForm上のコマンドボタンから ダイアログボックスを表示し、他ブックを開く処理なのですが、 他ブックを開くまでは問題ないのですが、他ブックが閉じれない状態になります。 Private Sub Workbook_Open() UserForm1.Show End Sub Private Sub UserForm_Initialize()  各種処理 End Sub Private Sub CommandButton1_Click() Dim OpenFileName As String SetCurrentDirectory (Worksheets(1).Cells(11, 3)) OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") Workbooks.Open OpenFileName End Sub UserFormを閉じると開いたブックも閉じることが可能です。 タスクマネージャーから強制的に終了しようとすると、以下メッセージが出ます。 ”開いているダイアログボックスがあるため、Microsoft Excel を終了できません。[OK]をクリックしてから、Microsoft Excelに切り替えてダイアログを閉じて下さい。" UserFormを閉じないで他ブックを閉じるには、どうすれば宜しいでしょうか。 申し訳ございませんがご教授下さい、よろしくお願いいたします。

  • Excelマクロを削除したのに…

    こんにちは。 いまExcel2003を使用しています。 あるブックファイルにマクロプログラム(VBA)を作成しました。 VBAProjectエクスプローラには標準モジュール「Module1」 ができています。 そこでこのマクロ自体を削除することになり, VBAProjectエクスプローラから標準モジュール「Module1」 を開放しました。 ところが当該ブックファイルを一旦閉じて, 改めて開くと,[セキュリティ警告]ダイアログが表示されて, マクロを有効にするか無効にするかを聞いてきます。 マクロを消したら, マクロセキュリティレベルを変えないままで, 上記のダイアログが出ないようにしたいのですが, どうすれば良いでしょうか? 教えてください。 よろしくお願いします。

  • Excel VBAで読み取り専用を表示しないで開く

    VBAで読み取り専用に設定されているExcelブックを 読み取り専用で開いてくださいというダイアログを表示させないで 開くにはどうすればよいでしょうか。 (Windows7 , Excel2010)

  • EXCEL VBAで名前をつけて保存

    EXCEL2003でVBAを作成しています。 INPUTBOXに入力した名前でファイルを保存するVBAを 作成したのですが、 同じファイル名が既に存在していたときに、 エラーのメッセージを出すようなVBAはありますか?

  • VBAで「ファイルを開く」ダイアログボックスにパスは指定できますか?

    エクセルVBAでプログラミングをしています。 「ファイルを開く」ダイアログボックスを開くときに、パスを指定して開くことは可能でしょうか? ご存じの方、教えてください。 エクセルは、Excel2000、Excel98などを使用しています。

  • EXCEL VBA プログラミング

    EXCEL VBAについて教えて下さい。 プログラミング超初心者です。 book1でマクロを実行し、ダイアログボックスを表示させて、任意のファイル(book2)を開き、book1のsheet1をまるごとbook 2の末尾にコピーするという処理をしたいのですが、うまくマクロが組めません。 ダイアログボックス表示→ファイルの選択まではいけたのですが、その先で苦戦しています。。 ご存知の方、マクロの組み方をご教示いただけますでしょうか。 よろしくお願い致します。

  • Excelのファイルをダブルクリック!

    エクスプローラーなどから、Excelのファイルをダブルクリックすると、エクセルが自動的に立ち上がり、Excelのファイルが表示されるのが一般的だと思います。私のパソコンもそのようになっていたのですが、ある日突然、Excelのファイルをダブルクリックしても、Excel自体は立ち上がるのですが、ファイルが表示されません。ウィンドウをクリックされても、ファイル名が表示されていないので、ブック自体が開かれていないように思います。(しかし、Excel自体は立ち上がるので、関連は付けられたままのような気がします) Excelのファイル-開くから、ファイルを選択するとちゃんとブックが開きます。 どなたか?詳しい方がいらっしゃいましたら、エクスプローラーから、ファイルをダブルクリックしたときに、ちゃんと、エクセルで表示出来るようにする方法を教えて頂けないでしょうか? また、質問の内容をどのように補足(ここの状態がどうなっているか?調べ見ろとか?)すれば、意味が通じるのか、ご指摘頂ける人はいませんでしょうか?

専門家に質問してみよう