• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAのプロパティ設定について)

エクセルVBAのプロパティ設定について

このQ&Aのポイント
  • VBAでエクセルのメニューのファイル→プロパティ→詳細情報にある改訂番号を変更する方法について解説します。
  • 整数値の改訂番号は問題なく変更できますが、通常文字(アルファベット)を含める場合にはエラーとなり変更できません。
  • ファイル右クリックからプロパティ-概要を開いて編集する分にはアルファベットを含んでいても問題ないため、整数値以外の制約がある可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 >エクセルファイルにはversion1.x.x.xのような形式であらかじめ改訂番号入っていて、 それは、手で入れたものではないでしょうか? >そのため目的としては参照を行ったBuiltinDocumentPropertiesと同じ場所に変更値を書き込みたいと思っております。 VBA側からは、数字というか、整数しか取り扱えないはずです。本来、VBAでは、BuiltinDocumentProperties は、読み取り専用にするのが一般的だっと思います。CustomPropertyは、マクロで使うための既定値のような使い方をします。

enoki18jp
質問者

お礼

こんばんは。 >それは、手で入れたものではないでしょうか? はい、バージョンはあらかじめ手で入れられたものだと思います。 BuiltinDocumentPropertiesで変更するのは無理そうですね。 別の方法を検討してみます。 ご回答ありがとうございました。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 BuiltinDocumentPropertiesは、規定のものしか代入できませんので、CustomProperty を使ってください。 Type は、文字型にしなくては、"version" という文字データは入れられません。 '------------------------------------------- '最初だけです。 Sub TestCustomsProperty()   Dim i As Integer   With ThisWorkbook.CustomDocumentProperties     .Add Name:="改訂番号", _     LinkToContent:=False, _     Type:=msoPropertyTypeString, _     Value:="version1"   End With End Sub '------------------------------------------- '2回目からは、 Sub AddPropertyNumber()   Dim buf As Variant   Dim i As Variant   With ThisWorkbook.CustomDocumentProperties("改訂番号")     buf = Replace(.Value, "version", "")     i = CLng(buf)     .Value = "version" & CStr(i + 1)   End With End Sub

enoki18jp
質問者

お礼

ご回答ありがとうございます。 この質問をしましたのは、複数あるエクセルファイルのプロパティ情報を まとめて参照設定できるようなツールを作成したいためとなります。 そのため目的としては参照を行ったBuiltinDocumentPropertiesと 同じ場所に変更値を書き込みたいと思っております。 (エクセルファイルにはversion1.x.x.xのような形式であらかじめ改訂番号 入っていて、それを変更可能にしたいと考えています) 型に関して、以下のような数値でなく文字列として認識されそうな適当な数列でも 試してみましたが変更可能でした。 00000598765432109876543210987654321098765432109876543210987654321077777 意図を汲み取っていただき丁寧なコード作成ありがとうございます。 CustomPropertyの使い方等知らなかったため勉強になりました。

関連するQ&A