エクセルVBAのプロパティ設定について
VBAでエクセルのメニューのファイル→プロパティ→詳細情報
にある改訂番号を変更したいのですがうまくできません。
以下、ソースの内容です。
Sub Sample()
On Error Resume Next
'整数値は問題なく変更可
' ThisWorkbook.BuiltinDocumentProperties("Revision Number").Value = "1"
'通常文字は変更不可
ThisWorkbook.BuiltinDocumentProperties("Revision Number").Value = "version1"
ThisWorkbook.Save
End Sub
改訂番号を整数値にすると変更できるのですが通常文字(アルファベット)を
含めるとエラーとなり変更できません。
エクスプローラ等でファイル右クリックからプロパティ-概要を開いて編集する分には
アルファベットを含んでいても問題ないため、整数値しかできない等の制約は
ないと思ったのですが。。
もし思い当たる原因や対策等何かありましたらご教授お願いいたします。
環境は以下になります。
OS:Windows2000,XP
Excel:Office2003
No.2ベストアンサー
- 回答日時:
こんばんは。
>エクセルファイルにはversion1.x.x.xのような形式であらかじめ改訂番号入っていて、
それは、手で入れたものではないでしょうか?
>そのため目的としては参照を行ったBuiltinDocumentPropertiesと同じ場所に変更値を書き込みたいと思っております。
VBA側からは、数字というか、整数しか取り扱えないはずです。本来、VBAでは、BuiltinDocumentProperties は、読み取り専用にするのが一般的だっと思います。CustomPropertyは、マクロで使うための既定値のような使い方をします。
こんばんは。
>それは、手で入れたものではないでしょうか?
はい、バージョンはあらかじめ手で入れられたものだと思います。
BuiltinDocumentPropertiesで変更するのは無理そうですね。
別の方法を検討してみます。
ご回答ありがとうございました。
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
ご回答ありがとうございます。
この質問をしましたのは、複数あるエクセルファイルのプロパティ情報を
まとめて参照設定できるようなツールを作成したいためとなります。
そのため目的としては参照を行ったBuiltinDocumentPropertiesと
同じ場所に変更値を書き込みたいと思っております。
(エクセルファイルにはversion1.x.x.xのような形式であらかじめ改訂番号
入っていて、それを変更可能にしたいと考えています)
型に関して、以下のような数値でなく文字列として認識されそうな適当な数列でも
試してみましたが変更可能でした。
00000598765432109876543210987654321098765432109876543210987654321077777
意図を汲み取っていただき丁寧なコード作成ありがとうございます。
CustomPropertyの使い方等知らなかったため勉強になりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Excel(エクセル) エクセルVBA、ファイル名をセルの値で保存の方法を教えてください。 おそれいります。こちらで数々のエ 6 2023/06/30 22:17
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのテーマのフォントが変わ...
-
【Xの青バッジについて】 Xの青...
-
時計の曜日のみを変更する
-
インスタで誕生日の変更制限の...
-
カラー用紙に白い文字をプリン...
-
スリープ中でもOSのアップデー...
-
入力規則で半角数字のみ受け付...
-
Wordの印刷設定をファイルごと...
-
エクセルで白い字を印刷をした...
-
windows10にてスリ~ぷ解除の原...
-
ps4コントローラについて
-
Caps Lockが自動でONになって困...
-
A5の文書をA4に2つ並べて印刷
-
アカウントの画像が変更できない
-
ネットワーク2の「2」の意味...
-
Windows95からVista上の共有フ...
-
印刷プレビューのように印刷さ...
-
Windows10がスリープ中に、3分...
-
macで同じ画像を均等に一枚の紙...
-
メールアドレスを新しいコンピ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのテーマのフォントが変わ...
-
至急!! X(旧Twitter)について...
-
【至急お願いいたします】faceb...
-
インスタで誕生日の変更制限の...
-
【Xの青バッジについて】 Xの青...
-
LINEに登録している電話番号が...
-
USBメモリの正式名称
-
都合により再投稿しました。 至...
-
パワーポイントにエクセルを貼...
-
画像(ビットマップ)のプロパ...
-
インスタグラムに初めて登録し...
-
カーソルの位置を示す縦棒に色...
-
eバンクに友人の紹介で利用する...
-
googleアカウントのプロフィー...
-
LINEのIDを変更すると相手には...
-
Twitter の 良いニックネームな...
-
Wordである文字列を太字などに...
-
「X(旧Twitter)」が正式なサー...
-
J-PhoneのJ-Mateの確認をWeb上で
-
印刷が片寄る…
おすすめ情報