プロが教える店舗&オフィスのセキュリティ対策術

VBAしか使用しないExcelのファイルサイズを軽量化するにはどうすればよいのでしょうか?

作成したVBAはExcelファイルを開くとInputBoxのダイアログが表示され、
そこにアドレスを入力するとブラウザが開いてそのページを表示します。

ちなみに、ブックのシートは1つだけにしてあり、セルには何も入力していません。
無駄なモジュールはなく、Excelファイルは直接ダブルクリックして開きたいので圧縮は不可です。

これ以上ファイルサイズを減らすことはできるのでしょうか?
ご存知の方がおられましたらご回答をよろしくお願いします。

使用OS:Windows XP
使用ソフト:Microsoft Excel 2003

A 回答 (2件)

こんにちは。



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も無いです。
    • good
    • 0
この回答へのお礼

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

ご回答いただきどうもありがとうございました。

お礼日時:2008/06/04 20:21

こんにちは。



>これ以上ファイルサイズを減らすことはできるのでしょうか?
だったら、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>
'---------------------------------------
    • good
    • 0
この回答へのお礼

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

ご回答いただきどうもありがとうございました。

お礼日時:2008/06/04 20:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!