@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

WordVBAでのツールバーの追加と削除について

投稿者投稿内容
なべとし
会議室デビュー日: 2006/12/13
投稿数: 15
投稿日時: 2007-05-07 18:45
WordのStartupフォルダにテンプレートファイルを設置し、
そのファイル内で、AutoExec()、AutoExit()を使って、
起動時にツールバー設置、
終了時にツールバー削除を行いたいと考えています。

現在、設置・削除ともに成功はしているのですが、
Startupフォルダからテンプレートファイルを削除後、
適当なWordファイルを開くと、
削除されたはずのツールバーが表示さる、という状況が発生しております。


まとめますと、以下の状況となっております。
=====
Startupフォルダ内のテンプレートファイルを、
「Toolbar.dot」とする。

・Startupフォルダに、Toolbar.dotを設置する。
・適当なWordファイルを開く。
・ツールバーが追加されていることを確認。
・Wordファイルを閉じる。
・ツールバーが削除されることを確認。
 (削除後、メッセージを表示するようにし、
  削除されているのを目視で確認。)
・Startupフォルダから、Toolbar.dotを削除する。
・適当なWordファイルを開く。
・表示されないはずのツールバーが表示されている。
=====

Startupフォルダからテンプレートファイルを削除すると、
ツールバーは表示されないようにしたいのですが、
良い方法をご存知の方おられましたら、
ご教授願います。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2007-05-08 16:39
こんにちは。

手元の Word 2003 で試してみましたが、再現しません。

コード:
Sub AutoExec()
Dim bar As commandBar
Set bar = CommandBars.Add("testBar")
bar.Visible = True
MsgBox "作成しました"
End Sub

Sub AutoExit()
CommandBars("testBar").Delete
MsgBox "削除しました"
End Sub



問題が発生するプロシージャを掲載していただけませんか。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
なべとし
会議室デビュー日: 2006/12/13
投稿数: 15
投稿日時: 2007-05-09 09:15
ue 様

なべとしです。

ご質問、ありがとうございます。
以下、当方で作成しているマクロのコードです。
=====

Private Const TITLE = "ToolBar"

Sub AutoExec()
  On Error Resume Next

  'ツールバー
  Dim objBar As CommandBar
  
  'ツールバーオブジェクトの取得
  Set objBar = CommandBars(TITLE)
  
  'ツールバーが存在しないとき
  If objBar Is Nothing Then
    Err.Clear
    
    'ツールバーを追加する
    Set objBar = CommandBars.Add(Name:=TITLE, Position:=msoBarTop)
    
    'ツールバーを表示する
    objBar.Visible = True
    
    'オブジェクトを廃棄
    Set objBar = Nothing
  
  'ツールバーが存在するとき
  Else
    objBar.Visible = True
  End If
  
End Sub


Sub AutoExit()
  On Error Resume Next
  
  CommandBars(TITLE).Delete
  
End Sub

=====

上記コードを、TemplateProjectとして
AddToolBar.dotに記述します。
あとは、先に書いた手順で操作を行うと、
追加されたツールバーが削除されないという状況です。
当方も、Word2003です。

お手数ですが、宜しくお願い致します。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2007-05-09 11:26
ueです。

引用:

なべとしさんの書き込み (2007-05-09 09:15) より:

上記コードを、TemplateProjectとして
AddToolBar.dotに記述します。
あとは、先に書いた手順で操作を行うと、
追加されたツールバーが削除されないという状況です。
当方も、Word2003です。


うーん、再現しません。
Startup フォルダには [%USERPROFILE%\Application Data\Microsoft\Word\STARTUP] と [%ProgramFiles%\Microsoft Office\Office11\Startup] とがありますが、両方に AddToolBar.dot を置いて片方だけを削除しているということはありませんか?
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
なべとし
会議室デビュー日: 2006/12/13
投稿数: 15
投稿日時: 2007-05-09 13:50
ue 様

なべとしです。

当方、問題となっているテンプレートファイル(AddToolBar.dot)は、
 [%ProgramFiles%\Microsoft Office\Office11\Startup]
のみに置いております。
期待通りの動作を得るためには、
 [%USERPROFILE%\Application Data\Microsoft\Word\STARTUP]
 [%ProgramFiles%\Microsoft Office\Office11\Startup]
の両方に置いておく必要があるのでしょうか。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2007-05-09 13:58
引用:

なべとしさんの書き込み (2007-05-09 13:50) より:
ue 様

なべとしです。

当方、問題となっているテンプレートファイル(AddToolBar.dot)は、
 [%ProgramFiles%Microsoft OfficeOffice11Startup]
のみに置いております。
期待通りの動作を得るためには、
 [%USERPROFILE%Application DataMicrosoftWordSTARTUP]
 [%ProgramFiles%Microsoft OfficeOffice11Startup]
の両方に置いておく必要があるのでしょうか。


ためせばわかることはためせ。
それくらい大人ならわかるよね?
なべとし
会議室デビュー日: 2006/12/13
投稿数: 15
投稿日時: 2007-05-10 17:14
ぶさいくろう 様

ご意見、ありがとうございます。

  [%USERPROFILE%Application DataMicrosoftWordSTARTUP]
  [%ProgramFiles%Microsoft OfficeOffice11Startup]
の両方にAddToolBar.dotを置いてみることは、
既に試しておりました。
しかしながら、うまくいきません。

ちなみに、試した内容は、
=====
  [%USERPROFILE%Application DataMicrosoftWordSTARTUP]
  [%ProgramFiles%Microsoft OfficeOffice11Startup]
 の両方にAddToolBar.dotを置く。

  [%USERPROFILE%Application DataMicrosoftWordSTARTUP]
 のみにAddToolBar.dotを置く。

  [%ProgramFiles%Microsoft OfficeOffice11Startup]
 のみにAddToolBar.dotを置く。
=====
の3パターンです。

その他に試せることはあるかなと思い試行錯誤しておりますが、
なかなか思いつかない状況です。
何かアドバイス等ございましたら、
宜しくお願い致します。
なべとし
会議室デビュー日: 2006/12/13
投稿数: 15
投稿日時: 2007-05-11 14:42
その後の検証により、
無事、問題が解決されました。

理由はなぜだかわかりませんが、
AddToolBar.dotを編集する際のWordが起動した画面において、
追加されるべきツールバーが表示されている状態で
保存しておく必要があるみたいです。
(今までは、表示されていない状態で保存していました。)

色々とご意見頂き、ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)