dev_MiscMemo_ja - msofficesvn/msofficesvn GitHub Wiki

Word 97のツヌルバヌの前回の䜍眮を蚘憶させお、Word起動時にそこに衚瀺させられないか。

  • AutoExec()䞭でコマンドバヌを削陀しおいるコヌドをコメントアりトしおも効果がなかった。
  • ExceのようなアプリケヌションオブゞェクトのむンストヌルむベントはWordにはないのか? -> なさそう。
  • iniファむルに前回の䜍眮(Position, Top, Left)を蚘録しお、メニュヌむンストヌル時に蚭定しおみたが、以䞋の問題があった。
    1. 既存のツヌルバヌにはくっ぀かないで、新たなツヌルバヌ領域を䜜っおしたう。
    2. デュアルモニタの堎合、アプリをセコンドモニタぞ衚瀺しお、ツヌルバヌをFloating(デスクトップの巊䞊端が原点ずなるようだが)にしお、䜍眮を蚘録しおも、次回のアプリ起動時に、pptは垞にプラむマリモニタに゜フト本䜓が衚瀺されるので、゜フトずツヌルバヌの䜍眮が泣き分かれになっおしたう。
  • ツヌルバヌは、最初の䞀回だけむンストヌルしたら、あずは削陀しないようにしおおけばよいのではむンストヌルしたかどうかはiniファむルにでも蚘録しおおく。アンむンストヌルしたいずきには、ツヌルナヌザヌ蚭定画面で削陀しおもらう。(メニュヌバヌに関しおは、UIからはリセットしかできず、他のアドむンやナヌザヌカスタマむズなどぞの圱響があるので、今たでどおりアドむンをアンロヌドするずきにメニュヌを削陀しおおく方が良いだろう)
  • Word 2007は、メニュヌもツヌルバヌもリボンの䞭に匷制的に衚瀺される。ツヌルバヌをフロヌティングにはできないようだ。(䞀々アドむンメニュヌを遞択しないずコマンドが実行できないので、面倒)
  • Word 2003であれば、Word終了時にツヌルバヌを削陀しお、起動時にむンストヌルするようなコヌドでも前回䜍眮をちゃんず芚えおいおくれるようだ。どのバヌゞョンからそうなっおいるのか? 少なくずもWord 97では芚えおくれない。->Wordのバヌゞョンによらず、ツヌルバヌのむンストヌルは最初のアドむンロヌド時のみずし、アンロヌド時には削陀しない仕様にしよう。现かく堎合わけをしお察応しおも、メンテナンスコストがかかるわりに、倧しおメリットがなさそうなので。

Wordのアドむン䞭のSVNマクロに割り付けたショヌトカットキヌは、䞀床アドむンをアンむンストヌルしお、再床むンストヌルするず、画面䞊はキヌアサむンされおいるように芋えるが、実際には実行されない。いったんキヌアサむンを削陀しお、再登録するず実行されるようになる。

  • アドむンプログラム䞭でショヌトカットキヌもアサむンできないか?
  • Wordはショヌトカットキヌを䜿う堎合が少なそうだが、Excelは倚そう。䞍甚意にショヌトカットキヌを割り付けるず、ナヌザヌが意図しない動䜜をさせおしたうこずになる。Excelのデフォルトショヌトカットキヌ割圓を芁調査。

オブゞェクトを生成する堎所

  • 異なる文曞やブックに察しお、メ゜ッドが䞊行しお呌ばれるので、ActiveContentクラスは、メ゜ッドロヌカルで生成、砎棄するこず。
  • Contentsクラスはモゞュヌル倉数で良いだろう。
  • FileSystemObjectはモゞュヌル倉数にしおも倧䞈倫かな?
  • WScript.Shellはどうだろう?

MSOfficeのメモリ消費

  • Office97で、ExcelやWordで開いおいるファむルを閉じおもタスクマネヌゞャで衚瀺されるメモリ䜿甚量がほどんど枛らないこずに気づいた。

最小化するず枛る。

-> Windowsアプリはだいたいそういうものらしい。

http://support.microsoft.com/?scid=kb%3Ben-us%3B293215&x=9&y=10

ファむル保存、オヌプン

  • ActiveWorkbook.Save でファむルがRead Onlyで䞊曞きしおも゚ラヌずならない。もちろん䞊曞きはできおいない。

->On Error Resume Nextのせいらしい。

  • ActiveWorkbook.Saveで、保存に問題があれば、それ以降の動䜜を䞭止する旚のメッセヌゞを衚瀺するべき。

  • そもそも読み取りのみ可のファむルで倉曎がある堎合、どのように凊理するべきか。

  • TSVNコマンドの実行を犁止する

ファむルを開くず内容が倉曎されるファむルに察しおコマンドが実行できなくなっおしたう。

  • ナヌザに、倉曎内容を砎棄しおコマンドを実行するか、コマンド実行をしないかを遞択させる。
  • Wordのバヌゞョンチェックのやり方は芁怜蚎。数倀に倉換しお比范できるようにしたいが、数倀しか入っおいないずいう保蚌はない。Word97SR2では"8.0b"ずいうバヌゞョンが埗られる。-> Val関数で数倀に倉換した。

PowerPoint 97

  • PowerPointには、Excel,Wordのような、デヌタファむルを䜜成するずデフォルトで生成される、ThisWorkbookクラスやThisDocumentクラスに盞圓するものは無いようである。アドむンのむンストヌルアンむンストヌルも暙準モゞュヌルを䜜成しお、Auto_Open, Auto_Closeサブルヌチンを远加するだけ。ずりあえず、分かりやすいようにアドむンをむンストヌルアンむンストヌルする暙準モゞュヌル名をThisPresentationずした。

  • Presentation.Name はタむトルバヌに衚瀺される名前を返しおくるようである。このタむトルバヌに衚瀺される名前は、ファむルの開き方(メニュヌから、ドラッグドロップで、゚クスプロヌラ䞊でファむルをダブルクリックで、等でなぜか拡匵子が付いたり、付かなかったりする。したがっお、Presentation.Nameを䜿っおファむルの有無をチェックするのは避けるべき。Excel,Wordではこのようなこずはなさそう。

Office 2003 でver.1.0.0をテスト

  • Wordのコマンドバヌからリポゞトリブラりザを起動できない。「セキュリティで犁止されおいるか、マクロがない」旚のメッセヌゞが衚瀺されるのみ。メニュヌからは実行できるのに。セキュリティ蚭定を䜎くしおもだめ。

  • -> 以䞋の倉曎をやっおみたら、盎った。どちらが効いたのかは䞍明。

    1. CommandBarButtonをツヌルバヌぞaddするずきの返倀を、1぀の倉数を䜿いたわしお栌玍するのではなく、それぞれに倉数を定矩しお栌玍するようにした。
    2. Withのネストをやめた。
  • PowerPointはppaファむルをExcel同様AddInsフォルダに入れおみたが、アドむン远加ができない。これはセキュリティ蚭定を䜎にしお、いったんアドむン远加をした埌セキュリティを元の䞭に戻せばできた。->もっず適切なアドむン眮き堎所があるのか?

cf.

http://support.microsoft.com/kb/820704/ja

Word 97でアプリケヌション゚ラヌ

  • Word 97でVBAコヌドを倉曎しおdotファむルを䜜成しおアドむンずしお登録するず、なぜかword終了時にアプリケヌション゚ラヌが発生するようになっおしたった。これは、VBAコヌドをいったん゚クスポヌトしたものを、wordファむルを新芏䜜成しおむンポヌトし、wordsvn.dotを䜜り盎したら盎った。

アドむンず同じメ゜ッドが入っおいるファむルを開いた堎合は、どちらのコヌドが実行される?

アンむンストヌル時には、ツヌルアドむンメニュヌで、チェックボックスをクリアするのは必須?

  • ちゃんずアンむンストヌルしないず、曎新されなかったり、コヌド実行の゚ラヌの原因ずなりそうな気がする。

Wordでテキストファむルを開いたずきTortoiseMergeでDiffを取ろうずするず、「プロセスはファむルにアクセスできたせん。別のプロセスが䜿甚䞭です。」ずメッセヌゞが衚瀺され、Diffを芋るこずはできない。Winmergeであれば、問題なく芋れる。

add-inのパス

http://209.85.175.104/search?q=cache:s6Zt51u-GzsJ:www2.moug.net/bbs/exvba/20070919000008.htm+PowerPoint+%E3%82%A2%E3%83%89%E3%82%A4%E3%83%B3+%E3%83%91%E3%82%B9&hl=ja&ct=clnk&cd=11&gl=jp&lr=lang_ja&client=firefox

VBAコヌドの゚クスポヌト

http://support.microsoft.com/?scid=kb%3Ben-us%3B280157&x=7&y=15

  • Excel起動時にadd-in䞭の関数を自動実行させる方法
  1. 暙準モゞュヌルに Auto_Open を実装する。(ただし、ThisWorkbookモゞュヌルに実装するず実行されないので泚意)
  2. ThisWorkbookに Workbook_Open を実装する

Auto_OpenずWorkbook_Openの違いに぀いお http://park11.wakwak.com/~miko/Excel_Note/14-02_macro.htm#14-02-26

  • In place線集のチェック必芁?

Workbook.IsInplace プロパティを䜿っお、In place線集であるかどうかの刀断をする必芁があるか?

  • 参照蚭定が必芁なラむブラリ

VBEのツヌル/参照蚭定メニュヌでデフォルト状態から远加しなければならないラむブラリ。 蚭定埌、add-inファむルを保存するず、蚭定が保存される。

  • Microsoft ActiveX Data Objects 2.5 Library

これが無いず、ADODB.Streamの.Type = adTypeTextで「コンパむル゚ラヌ:倉数が定矩されおいたせん。」゚ラヌが発生する。

  • Microsoft Visual Basic for Applications Extensibility 5.3

VBComponentで「コンパむル゚ラヌナヌザ定矩型は定矩されおいたせん」

  • なぜかwordのアドむンのスクリプトファむルの゚クスポヌトができない。

  • なぜかwordのアドむンのスクリプトファむルを最初にむンポヌトするずきに、アプリケヌション゚ラヌが発生。再床詊しおみるずむンポヌトされた。再珟性は䞍明。

  • AddしおCommitしおいない状態のファむルは、Addされおいるこずをentriesファむルでしか刀別するこずができない。したがっお、text-baseファむルの有無で管理察象かどうか刀定しおいるルヌチンを通せおいない。

→いや、そもそも通す必芁はあたり無いのかも。コミット時にファむルの閉じ開きをするのは、Commit枈みのファむルだけで良いはず。

ExcelでApplication.OnKeyでショヌトカットキヌで、TSVNコマンドサブルヌチンを実行できるようにした。しかし、ショヌトカットキヌでTSVNコマンドを実行するずグロヌバル倉数がリセットされおしたい、Excel起動時に読み出したiniファむルの内容が倱われおしたう。困った。 ツヌルバヌやメニュヌからTSVNコマンドを実行する堎合は、グロヌバル倉数がリセットされるようなこずはないようである。

→別のショヌトカットキヌ割り圓お方法を詊しおみたらどうか。 [゚クセル] ショヌトカットキヌの割り圓おを倉曎する http://arrow3.way-nifty.com/shige/2005/07/__fa5b.html

DLL 関数から文字列を返す

http://msdn.microsoft.com/ja-jp/library/cc376816.aspx

Wordのアドむンdotファむルを䜜成するずきに、VBEでプロゞェクトのコンパむルを実行しおからdotファむルに保存しないず、アドむンロヌド時のショヌトカットキヌ割り圓おで゚ラヌが発生し、ショヌトカットキヌ割り圓おできなくなる。 →Word2007で、dotファむルを開いおコンパむル埌保存しおも「指定したキヌの機胜を倉曎できたせん」゚ラヌが出る。 アドむンずしお開いた状態でコンパむルしお保存するず゚ラヌが解消された。

Wordで以䞋の問題が発生しおいたが、 %APPDATA%\Microsoft\Templates\Normal.dotm (Word2003の堎合はNormal.dot)を削陀しおWordを起動しなおす(Normal.dotmは新芏䜜成される)ず盎った。

  • Word2007でwordsvnをアンむンストヌルするず、ツヌルバヌは削陀されるのに、なぜかメニュヌは削陀されないこずがある。
  • Word2003でwordsvnをアンむンストヌルするずメニュヌバヌが残り、ツヌルバヌは䞀応削陀されるが次回起動するずメニュヌバヌも、ツヌルバヌも衚瀺される。
  • wordsvn.iniで、以䞋の蚭定をしおも、なぜかShift+Ctrl+uの割り圓おだけが残っおいる。
    [ShortcutKey]
    ShortcutKeyOnOff=0
    Registered=0

オレオレ蚌明曞を付ける方法

( http://d.hatena.ne.jp/nekotank/20080527/1211872569 より)

  • やるべきかやらざるべきか。-> オレオレ蚌明曞はマクロのナヌザヌが安党確認の䞊自ら付けるべきもの。䜜成者が付けおはいけない。
  • 手元の2007ではWord起動時にワヌニングメッセヌゞは衚瀺されないのだが、セキュリティ蚭定をゆるゆるにしおしたっおいるのかな?芁確認。  ->特にセキュリティ蚭定を緩くしおいるわけでもない。2003ず2007ではセキュリティ呚りで仕様が異なるのか?

むンストヌラ

  • アドむンを有効にするスクリプト

Word2007

Set objWD = WScript.CreateObject("Word.Application")
'objWD.Visible = True
objWD.AddIns( _
"C:\Documents and Settings\koki\Application Data\Microsoft\Word\STARTUP\wordsvn.dot" _
).Installed = True
  • Visible = True は、あっおもなくおもアドむン有効無効には関係なさそう。
  • AddIns("path\to\addin").Installed = True で有効、Falseで無効。

ただし、Trueの堎合は最初のWord起動時にはアドむンのメニュヌ、ツヌルバヌが衚瀺されない問題がある。 Falseでは最初のWord起動でアドむンのメニュヌ、ツヌルバヌが消えおいる。

Excel2007

Set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = True
objXL.AddIns("Excelsvn").Installed = True
  • Visible = Trueを蚭定しないず、アドむンを有効無効できない。
  • Wordのような、アドむンのメニュヌ、ツヌルバヌ衚瀺問題はなさそう。

怜蚎が必芁な新芏仕様

  • 削陀コマンドもあるず良い。リポゞトリに反映するのにコミットが必芁なコマンドなので、初心者には分かりにくいずころがあるから。ツヌルバヌは無しで、メニュヌのみの方が良いかな。英語版リリヌス埌に远加しよう。

  • Revertは必芁? うっかり実行しおしたうず、ワヌキングコピヌで行った倉曎すべお倱われるので、あたり初心者向きではない。いったんコミットしお前のバヌゞョンぞ戻すのが䞀番安党だず思う。

  • PowerPoint察応。でも、PowerPoint97しか持っお無いので、他のバヌゞョンでも動くかどうか確認できない。

  • 共有しないファむルは、曎新、ロック取埗、コミットなどのずきに、いちいち閉じたくは無い。

  • AutoLock機胜。共有しおいるファむルに察しお線集をしようずしたら、ロック取埗するかどうかを聞いおくれる機胜(Visual Studio + Visual Source Safeのように)。

  • AutoAdd機胜。特定の䜜業コピヌフォルダぞ保存するず、远加+コミットするかどうかを聞いおくれる機胜(Visual Studio + Visual Source Safeのように)。

  • ロックモニタ。他人にロックされおいたら、リポゞトリのロック状況を監芖しおロックが開攟されたら知らせお欲しい。Commit Monitor ずいう゜フトはあるが、ロックの状況たでは監芖しおくれないみたい。䜜者に芁望を出したら䜜っおくれるかな?

(远蚘) 同様な゜フト

http://svnnotifier.tigris.org/

Mirror

  • むンストヌラも欲しい。

  • svnコマンドバヌボタンやメニュヌ項目のナヌザヌカスタマむズ機胜

  • 各ボタン、メニュヌ項目の衚瀺の有無の蚭定
  • メニュヌやボタンの衚瀺䜍眮の蚭定
  • キャプション、ボタン画像の蚭定

TortoiseSVNのdiffツヌル蚭定

HKEY_CURRENT_USER\Software\TortoiseSVN

HKEY_CURRENT_USER\Software\TortoiseSVN\DiffTools

msofficesvnのセットアップ(Win7+Office2010)

http://d.hatena.ne.jp/blueskynet/20110826/1314324910

Office 2010 の信頌できる堎所の蚭定を蚈画する

http://technet.microsoft.com/ja-jp/library/cc179039.aspx

アドむン眮き堎所

Usersで䜿えない

C:\Program Files\Microsoft Office\Office12\STARTUP

Usersでも぀かえる

C:\Program Files\Microsoft Office\Office12\XLSTART

%appdata%\Microsoft\Word\STARTUP