• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数1199
  • ありがとう数2

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

  • ベストアンサー
  • 回答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も無いです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • ExcelVBA ユーザーフォームのコードがない

    いつもお世話になっています。 Excel vbaで質問させてください。 あるExcelブック(test.xlsとします)を開くと、ユーザーフォーム(と思う)が表示されます。 (この時、Excelアプリケーションは「表示」されていてモーダルの状態です) ユーザーフォームで日付を選び、「これでOK」ボタンをクリックすると 新規ブックとして「text_0614.xls」が出来て、これが表示ブックとなります。 (元のtest.xlsは閉じられています) vbaコードの修正がしたくて、VBEから作業しようとしたところ ユーザーフォームモジュールも、標準モジュールも何も見当たりません。 Thisworkbookのイベントも何も書いてありません。 プロジェクトにパスワードがかかっているのかと思いましたが、もしそうだとしても プロジェクトウィンドウに、「フォーム」というフォルダは表示されると思いますし、 また、ダブルクリックしてもパスワードを求められることがありませんので パスワードがかかっているようには見えません。 これはExcelVBAのユーザーフォームじゃないのでしょうか?(VB?) または、もし、この「フォーム」フォルダごと、ユーザーに見せないやり方があるのでしょうか? どなたかご存知の方いらっしゃいましたらご教示ください! WinXP SP3 Excel2003 SP3 使用です。 どうぞよろしくお願いします。

  • ExcelVBAのコードが知りたい

    ちょっと古いことを教えてほしいのですが。 というのは、新しく知り合いになった方から、古いプログラム(Excel-VBA)を直したい、という相談を受けました。 ところが、ものすご~く古いものらしくて 1)VBAProjectを開いてみると、シートオブジェクトと標準モジュールはあるのですが、フォームが表示されません。     でも、実際の動きをみると、入力用のフォームなどは表示されます。 2)良く見ると(Sheet表示を全部見ると)、シートオブジェクトに表示されないものがあって、そこにX1DG,X2DG・・・という名前のダイアログシートがあって、そのシート上にフォームがありました。 3)Macroを動かすいわゆるボタンはなくて、リボンの中のアドインを選ぶと、”ユーザー設定のツールバー”が表示され、その中にプルダウンメニューが設定されていて、これを操作すると、それぞれの機能が動きます。 3)動作するVBAのコードは標準Module上に書かれていますが、上記のダイアログの中の定義体や、ユーザー設定のツールバーの中のコードがどこを探しても出てきません。 4)VBAの教科書などを見ると、どうもEXCEL95/Excel4.0の時代のもののように見受けられます。 5)今使用している(知り合いの方も、私も)ものは、WinVISTA・Excel2007なのです。 どうしたら、全体構成(VBA・DG)を見ることができるでしょうか? 教えていただけると、むちゃくちゃ嬉しいのですが。 宜しくお願いします。

  • ExcelVBAで

    ExcelVBAで、Excelファイルを保存するダイアログを表示し、指定パスにファイル名を指定して保存したいのですが、 保存ダイアログが開いた際に、デフォルトでパスを指定しておくことは可能なんでしょうか?(プログラム上で)

その他の回答 (1)

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

こんにちは。 >これ以上ファイルサイズを減らすことはできるのでしょうか? だったら、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> '---------------------------------------

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • ExcelVBA2010 マクロが動作しない

    Excel2010のVBAについて質問します。 ブックAとブックBがあり、ブックAにはVBAのモジュールの記述がります。 そのブックAの中にあるシート1にコマンドボタンを作成し、このボタンにモジュールが登録されています。 ブックAを起動すると、ブックAの中にあるシート1をブックBにコピーします。 ブックBにコピーされたシート1のコマンドボタンに登録されているボタンをクリックすると、ブックAのVBAのモジュールが起動され動作されるはずですが、なぜかブックB内のシート1のコマンドボタンのモジュール先がブックAでは無くブックB内のリンク先に変更されてしまい、VBAが動作しません。 パソコンAでは動作し、パソコンBでは上記のエラーになってしまいます。 Excel本体の設定等を見比べましたが、一向にわかりません。 どうかご教授をお願いいたします。

  • 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を閉じないで他ブックを閉じるには、どうすれば宜しいでしょうか。 申し訳ございませんがご教授下さい、よろしくお願いいたします。

  • エクセルのファイルサイズと保存時のファイルの種類との関係について

    エクセルのファイルですが、たいした内容で無いにも関わらず、ファイルサイズが大きく困っておりました。 そこで"名前を付けて保存"を選択して"Microsoft Excel 97-Excel 2003 および 5.0/95ブック"から"Microsoft Office Excel ブック"に変更して保存した所、ファイルサイズが2.53MB→408Kと激減しました。 会社ではExcel97を使っており、自宅ではExcel2003なのですが、同じ現象が起きました。 画像に関しては小さいイラストが何箇所かある程度で、プレビューの絵の保存はしていません。 何故このようになるのか?こうなったことにより何か影響がでるのかがわかる方、教えていただけると助かります。 よろしくお願いします。

  • VBからExcelVBAの起動

     みなさんはじめまして・・・。  今、VBからExcelのVBAで記述したモジュールを呼び出そうとしています。 VB6.0で作ってExcel97のブックに書かれているモジュールを起動するにはどのようにすれば良いのでしょうか? なにぶん初心者なので、説明足らずかも知れませんが 宜しくご教示ください。。。

  • VBAでエクセル終了

    エクセル2000です。 VBAで「閉じる」ボタンを作りました。 Sub closeボタン() myYN = MsgBox("終了しますか?", vbYesNo + vbQuestion, "終了確認") If myYN = vbNo Then Exit Sub ThisWorkbook.Close End Sub ところが作動させると「いいえ」を選ぶとすんなり終了してくれますが、「はい」にすると「変更を保存しますか?」を何故か続けて2回も聞いてきます。 2回目も「はい」にすると今度はブック保存のダイアログが出てきて、ブック名が「:」(半角コロン)になってます。 変だなあ、と思い上記のマクロを別ブックを新たに作って標準モジュールに張ってみると正常に作動します。 もとのブックに何かあって、こんな現象が起きているのでしょうか? とっても困ってます。

  • EXCELVBAでフォルダを指定するダイアログ

    EXCELVBAでフォルダを指定する(ファイルではなく)ダイアログを表示させたいの ですが、VBで存在するコントロールがVBAにないので、どのようにすればいいのか わかりません。どなたか、具体的に教えていただけませんでしょうか? EXCEL97を使っています。

  • エクセル2000のアイコン表示について

    エクセル97が入っていたパソコンを初期化しました。 作成済みのエクセルのデーターは別に保管していましたので初期化後にパソコンに戻しました。 その後、エクセル97のソフトが見つからず(元々インストールされていなかったパソコンです)エクセル2000のソフトをインストールしました。 スタート画面→プログラム→エクセルからファイルを選べば開きます。 以上をふまえて質問です。 新規作成してもアイコンがエクセル97のままなのです。 ファイル→名前を付けて保存→ファイル名を入力しました。その下のファイルの種類はMicrosoft Excel ブック(*.xls)のままで保存にしています。 ファイルの種類をMicrosoft Excel 97-2000および5.0/95ブック(*.xls)で保存しても結果は同じです。 2000は緑色のX、バッテンのようなアイコンになると思いますがそうなりません。 何が原因でしょうか? 原因だけ知りたいのではなく、現在のままですと、いきなりファイルからダブルクリックして開こうとしても、EXCEL.EXEが見つかりませんと出るので、いちいち、スタート画面から開かないといけないので面倒なんです。 どうか教えて下さい。よろしくお願いします。

  • Excel VBA Dialogsheet

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

  • VBA でテキストファイルに読み書き

     エクセル2000のVBAを使用しています。 ブックAファイル名をブックBのセルに入力して、ブックAをインデックスの様な扱いのファイルを作成使用としたのですが、ブック間で変数のやり取りは出来ないと思います。できるんですか??  その為、txtファイルを変数代わりに使おうと思っているのですが、 入出力の方法が良くわかりません。  簡単にブックBのセルの値をtxtファイルに書き込んでブックAで、 そのtxtファイルを読み込む様なVBAのコード教えて下さい。 初心者ですけど・・。

  • エクセル2007で MS Excel5.0ダイアログは使用できますか?

    来春にはエクセル2007が発売されるようですが、それで心配事があります。 既存のエクセルのブックには、過去からの流れで、ユーザーフォームではなく、「MS Excel5.0ダイアログ」のダイアログシートを使用しているものが大量にあります。 これがもし使用できなくなると大変なんです。どなたかご存知の方いらっしゃいませんでしょうか?