Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7096 / 13644 ツリー ←次へ | 前へ→

【41164】アイコンの表示変更 Takatuki 06/8/1(火) 10:47 質問[未読]
【41178】Re:アイコンの表示変更 Jaka 06/8/1(火) 15:38 発言[未読]
【41242】Re:アイコンの表示変更 Takatuki 06/8/2(水) 22:59 お礼[未読]
【41250】Re:アイコンの表示変更 BB 06/8/3(木) 9:50 発言[未読]
【41183】Re:アイコンの表示変更 Kein 06/8/1(火) 16:23 回答[未読]
【41241】Re:アイコンの表示変更 Takatuki 06/8/2(水) 22:56 お礼[未読]
【41244】Re:アイコンの表示変更 Kein 06/8/2(水) 23:54 回答[未読]

【41164】アイコンの表示変更
質問  Takatuki  - 06/8/1(火) 10:47 -

引用なし
パスワード
   エクセルVBAでマクロを作成していますが、アイコンがすべて同じエクセルの表示です。

これをVBで作成したときはアイコンを選ぶことができますが、VBAの場合は
アイコンを変更できないのでしょうか? お教えください。

【41178】Re:アイコンの表示変更
発言  Jaka  - 06/8/1(火) 15:38 -

引用なし
パスワード
   VBとVBAは基本的に違います。
VBは、アプリケーションソフトとして単体で動きますが、VBAは、Office製品におんぶして動くようなものです。
エクセルのマクロは、エクセル上で動いているようなもんで、エクセルが無ければ動きません。
どうしてもアイコンを変更したければ、拡張子を変えフォルダオプションで自身のPCでしか使えない(認識しない)ファイルにすれば変えられます。
これはVBAうんぬんでなく、OS上でカスタマイズするようなものです。
ということで、基本的にできないと思われた方がいいかと...。

エクセルのマクロが単体で動くようになるシュアウェアが、ベクターかどこかにあったと思いますが、アイコンの変更までできたか覚えてません。

Macならめちゃくちゃ簡単にできます。
ただ、今のMac版EXLとOSバツ系はわからないけど、EXL98だと上書き保存するとファイルのリソースフォークまで書換えちゃうみたいなので、標準のアイコンに戻っちゃったけど...。

【41183】Re:アイコンの表示変更
回答  Kein  - 06/8/1(火) 16:23 -

引用なし
パスワード
   WSHで icoファイル をエクセルブックに関連付けることは出来ます。
通常ブックを開くフォルダーに、Book2.xls というファイルが保存
されているとして、概ね以下のようなコードになります。
icoファイル の保存先は定数 P_Fol のフォルダーで、Tree.ico という
名前です。もちろん定数は、そちらの状況に合わせて変更して下さい。
なお、アイコンを変更したファイルは拡張子が lnk で、元のファイルを
SaveAs したときのような状態になるので「ファイルを開く」ダイアログで
「ファイルの種類」を"すべてのファイル(*.*)"に変更しないと出てきません。

Sub Ch_ICON()
  Dim WshShell As Object, oShellLink As Object
  Dim Def_Fol As String
  Const P_Fol As String = _
  "C:\Documents and Settings\User\My Documents\アイコン\"
 
  Def_Fol = Application.DefaultFilePath
  Set WshShell = CreateObject("WScript.Shell")
  Set oShellLink = WshShell _
  .CreateShortcut(Def_Fol & "\NewBook2.lnk")
  With oShellLink
   .TargetPath = Def_Fol & "\Book2.xls"
   .WindowStyle = 1
   .IconLocation = P_Fol & "Tree.ico, 0"
   .Description = "エクセル・ブック"
   .WorkingDirectory = Def_Fol
   .Save
  End With
  Set oShellLink = Nothing: Set WshShell = Nothing
End Sub

【41241】Re:アイコンの表示変更
お礼  Takatuki  - 06/8/2(水) 22:56 -

引用なし
パスワード
   早速のお教え有難うございます。
でも私の浅学のはずかしさ、これをどのようにして使えばよいかわかりません。
せっかくあなたの貴重な時間をとりましたのに本当に申し訳ありません。
なお、どのように勉強したらあなた様のようにエクセルVBAのツウになれるのか、
時間あるときにお教えください。

【41242】Re:アイコンの表示変更
お礼  Takatuki  - 06/8/2(水) 22:59 -

引用なし
パスワード
   早速のお教え有難うございます。
どのように勉強したらあなた様のようにエクセルVBAのツウになれるのか、
お教えください。

▼Jaka さん:
>VBとVBAは基本的に違います。
>VBは、アプリケーションソフトとして単体で動きますが、VBAは、Office製品におんぶして動くようなものです。
>エクセルのマクロは、エクセル上で動いているようなもんで、エクセルが無ければ動きません。
>どうしてもアイコンを変更したければ、拡張子を変えフォルダオプションで自身のPCでしか使えない(認識しない)ファイルにすれば変えられます。
>これはVBAうんぬんでなく、OS上でカスタマイズするようなものです。
>ということで、基本的にできないと思われた方がいいかと...。
>
>エクセルのマクロが単体で動くようになるシュアウェアが、ベクターかどこかにあったと思いますが、アイコンの変更までできたか覚えてません。
>
>Macならめちゃくちゃ簡単にできます。
>ただ、今のMac版EXLとOSバツ系はわからないけど、EXL98だと上書き保存するとファイルのリソースフォークまで書換えちゃうみたいなので、標準のアイコンに戻っちゃったけど...。

【41244】Re:アイコンの表示変更
回答  Kein  - 06/8/2(水) 23:54 -

引用なし
パスワード
   >これをどのようにして使えばよいかわかりません。
ここから先のコードの全文をコピーし、使いたいブックの標準モジュールに
貼り付けます。その詳しいやり方については↓のサイトを参考にして下さい。
http://park11.wakwak.com/~miko/Excel_Note/14-01_macro.htm#14-01-01
で、貼り付けたままでは、まだ使える状態ではありません。先にもアドバイス
したように、まず Const P_Fol As String = という定数宣言で実際に使う
アイコンファイルの保存先パスを指定します。それから、いくつかのコードで
"固有名詞"を使っている部分を、そちらに合わせて変更します。具体的には
>.CreateShortcut(Def_Fol & "\NewBook2.lnk")
>.TargetPath = Def_Fol & "\Book2.xls"
>.IconLocation = P_Fol & "Tree.ico, 0"
の、3ヶ所については必須でしょう。あと
>.Description = "エクセル・ブック"
>.WorkingDirectory = Def_Fol
については任意でして下さい。

>どのように勉強したら
一般的な勉強法については、過去ログにたくさん保存されています。
検索して自分に合った方法を選択されたら良いと思います。
ただ、今回の回答については「Excel・VBA」のみを習得しただけでは
組むことが出来ないコードになっています。このコードの殆どが WSH
(Windows Script Host) の知識を必要とするものなのです。これについては
VBAより参考書の数も少なく、大きな書店でないと入手できないと思います。
また、参考になるサイトも数は少ないですが、現在おそらく最も有名な
WSHの紹介・学習サイトをリンクしておきます。↓こちらになります。
http://wwwroy.hi-ho.ne.jp/mutaguchi/wsh/wshtop.htm
できればVBAの学習と併行して学習されると、コーディングの幅がグッと
広がることと思います。頑張って下さい。

↓先のコードを再掲しておきます。
Sub ADD_ICON()
  Dim WshShell As Object, oShellLink As Object
  Dim Def_Fol As String
  Const P_Fol As String = _
  "C:\Documents and Settings\User\My Documents\アイコン\"
 
  Def_Fol = Application.DefaultFilePath
  Set WshShell = CreateObject("WScript.Shell")
  Set oShellLink = WshShell _
  .CreateShortcut(Def_Fol & "\NewBook2.lnk")
  With oShellLink
   .TargetPath = Def_Fol & "\Book2.xls"
   .WindowStyle = 1
   .IconLocation = P_Fol & "Tree.ico, 0"
   .Description = "エクセル・ブック"
   .WorkingDirectory = Def_Fol
   .Save
  End With
  Set oShellLink = Nothing: Set WshShell = Nothing
End Sub

【41250】Re:アイコンの表示変更
発言  BB  - 06/8/3(木) 9:50 -

引用なし
パスワード
   ▼Takatuki さん:
>早速のお教え有難うございます。
>どのように勉強したらあなた様のようにエクセルVBAのツウになれるのか、
>お教えください。

横から失礼します。

VBA上達の一つの方法として、自分が困ったときだけこのような掲示板を利用するのではなく、毎日掲示板を見て、質問と回答を眺める。
これだけでも、他の人はどんなことに困って、どんな方法で回答を導き出しているのかが判るようになると思います。
コードで判らなければヘルプを使ったり、自分で調べた上で判らなければ質問すればいいことだし。

困ったときだけ掲示板を利用するとか見る。というだけでなく、自分でコードを組まなくても、他人が書いたコードを見て、VBAに毎日接するというのも上達の一つの方法だと思いますよ。

7096 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free