admin menu ≫  image  writes  admin
スポンサーサイト 
--.--.--.-- 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
備忘録(1)・・・いろいろ 
2009.05.01.Fri 
ここ数週間、解決できたこと、できなかったことを新しい順に書いてみる。

■一定時間だけメッセージを表示して消したい(その2)
 なんとまぁ?下記の(その1)のコードはVBSのコードを無理矢理VBAのSubステートメントにしていたということが判った。どうりで思ったように動かないわけだ。VBスクリプトで記述してVBAから呼び出したら難なく解決できた。

'VBスクリプト・・・ブックと同じフォルダに"PopUp.vbs"という名前を付けて保存する
Option Explicit
Dim WSH
Set WSH = CreateObject("WScript.Shell")
WSH.Popup("このメッセージボックスは5秒間だけ表示されます・・・"),5,"5秒間だけ表示するメッセージ",vbInformation
Set WSH = Nothing
 
'VBAからVBスクリプトを起動する・・・VBAに記述する
Shell "WScript.exe """ & ThisWorkbook.Path & "\PopUp.vbs" & """"
 

■何処かにメッセージを表示できないか?
 ステータスバーにメッセージを表示するマクロを見つけたので試してみたけど、誰がみても気づかないような気がする?(^^;・・・
Default = Application.DisplayStatusBar
Application.DisplayStatusBar = True
・・・
Application.StatusBar = "★処理を行っています・・・しばらくお待ちください"
処理モジュールを記述
・・・
Application.StatusBar = False
Application.DisplayStatusBar = False
Application.DisplayStatusBar = Default

■一定時間だけメッセージを表示して消したい(その1)
 エクセルVBAじゃ出来ないみたいだけど、出来そうなマクロを見つけた。メッセージを5秒間表示して消えるらしいので試してみたが、5秒以上待っても消えなかった。記述している行がまずいかもしれないと、あちこち移動してみたけど、やっぱり消えない。Subステートメントで使ってみたけどやっぱ消えないし??
Sub test()
Dim WSH As Object
Set WSH = CreateObject("WScript.Shell")
WSH.Popup "5秒間メッセージを表示する・・・", 5, "メッセージ", vbInformation
Set WSH = Nothing
End Sub

■ブックを閉じるまでの時間
「配筋図」シートにある図形や数量表を消去してからブックを閉じる場合と、図形の無い状態で閉じる場合とでは、結構な時間の差が出た。図形のある場合と無い場合の処理には大差ないが、図形があると上書き処理した後、ブックが閉じられるまでに30秒くらい掛かってしまう。調べてみても時間が掛かる原因が判らないので、図形を消去して閉じる時は、「ThisWorkbook.Save(上書き処理)」実行後に「時間がかかります・・・」というメッセージを出すことにした。一定時間だけ表示して自動で消したいんだが・・・

■画面表示について
 配筋図を書く時に画面が入れ替わったりするので違和感があった。図形を消去する時もやっぱり違和感がある。何とかならないかと探していたら・・・所々に記述してスッキリと解決できた。
Application.ScreenUpdating = False  '画面の更新を許可しない
・・・
作図処理モジュールを記述
・・・
Application.ScreenUpdating = True '画面の更新を許可する

■「クリップボードに大きな情報があります・・・」というメッセージが出た。
 また厄介なメッセージが出た。「配筋図」シートの図形や数量表を消去してから閉じようとすると表示されるようだ。
Application.CutCopyMode = False
で解決できた。

■ブックのサイズが2MBを超えた(^^;
 試しに「配筋図」シートに書き込まれたオートシェイブ図形と数量表を消去してから保存してみたら、データ量として150kB弱もあった。保存する必要のないデータならブックを保存する前に消去する手もある。「変更を保存しますか?」というメッセージも「ThisWorkbook.Save」を記述すれば回避できるならブックを閉じる前に「配筋図」シートの不要なデータを消去したほうが良いかもしれない。

■ブックを閉じる際、データを変更していないのに「変更を保存しますか?」というメッセージが出る。
 TODAY( )やNOW( )などの関数を使ったり、カメラの画像を保存しているとブックを開くたびに再計算が行われデータが変更されたと判断されてしまうようだ。またアドインのTEXTCALC関数を使っていてるブックでも同じように表示されてしまう。対処方法としてThisWorkbookに以下のようなブックを上書き保存するマクロを記述したら解決できるということだが・・・マクロ編集中は上書き保存を実行するにはちょっと戸惑いがある。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Save
End Sub

■マクロエラーが出る。
 モジュールを分割して64KB以上にならないようにしてるのに「メモリーが不足しています」いうエラーが出る。どうやらエクセルアプリケーションを幾つも開いていたり、VBエディタでモジュールを幾つも表示させた状態でマクロを実行すると「メモリーが不足しています」というエラーメッセージの他、いろいろなエラーメッセージが出るようだ。一度ブックを閉じてから、不要なアプリケーションやエディタを閉じてブックを再オープンすると解決するようだが・・・他のPCでも使いたいからメモリーを増設しても無駄かな?

■ダイアログボックスでファイルを選択してエクセル以外の外部プログラムを実行できないか?
 下記のメソッドを使って外部プロクラムの登録マクロと実行マクロを書いてみた。ユーザー設定ボタンにマクロを登録して全てのブックから外部プログラムが実行できるようになった。登録したのはJww、AutoCad、一太郎、テキストエディタ・・・プログラムランチャー擬きだよん(^^v

■ダイアログボックスでデータの保存先を選択するには?
 ファイルの保存や開くでダイアログボックスを使う簡単なメソッドを見つけた。 これを使って面白いこと出来そうだ(^^
'ファイルを保存する"GetSaveAsFilename"メソッドの書式
変数 = Application.GetSaveAsFilename(InitialFilename,FileFilter,FilterIndex,Title,ButtonText)
'ファイルを開く"GetOpenFilename"メソッドの書式
変数 = Application.GetOpenFilename(FileFilter,FilterIndex,Title,ButtonText,MultiSelect)

関連記事
スポンサーサイト
* スポンサーサイト備忘録(1)・・・いろいろへのコメント *
   

台風画報


ナショジオニュース

降水短時間予報

RSSフィード

月別アーカイブ

ブログ内の検索

プロフィール


  • Designed by Il mio diario
  • Powered by FC2BLOG
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。