<やりたいこと>
Shape.Cells("something").Formula = XXX
でVBA上の変数を入力したい
VBAを起動するファイルとは別のCells.Formulaに
VBA中で定義された変数の値(ここでは文字列の"1.0.0")を入力したい
<発生するエラー>
86db0ce6
例外が発生しました。
<該当箇所のみのコード>
VBA
1Sub Input_Version_Information(ByVal VSSXpath As String) 2 version_str = "1.0.0" 3 For Each vssxMaster In vssxMasters 4 vssxMaster.Shapes.Item(1).Cells("Prop.Version").Formula = version_str 5 Next 6End Sub
<エラーとなる他のコード例>
vssxMaster.Shapes.Item(1).Cells("Prop.Version").Formula = "version_str"
vsoAppにはversion_strという変数が定義されていないので
「実行時エラー 86db0425 #NAME?」が発生する
<エラーは出ないが望みの結果とならないコード>
vssxMaster.Shapes.Item(1).Cells("Prop.Version").Formula = """version_str"""
version_str という文字列が入力される
<全コード>
VBA
1Sub Input_Version_Information(ByVal VSSXpath As String) 2 Dim vsoApp As Visio.Application 3 Dim vssxDoc As Visio.Document 4 Dim vssxMasters As Visio.Masters 5 Dim vssxMaster As Visio.Master 6 Dim FileName As String 7 Dim version_str As String 8 Set vsoApp = CreateObject("Visio.Application") 9 Call vsoApp.Documents.OpenEx(VSSXpath, visOpenRW) 10 Set vssxDoc = vsoApp.Documents.Item(1) 11 Set vssxMasters = vssxDoc.Masters 12 FileName = Dir(VSSXpath) 13 FileName = Replace(FileName, ".vssx", "") 14 version_str = Mid(FileName, InStr(FileName, "v") + 1, Len(FileName)) 15 16 For Each vssxMaster In vssxMasters 17 vssxMaster.Shapes.Item(1).Cells("Prop.Version").Formula = version_str 18 Next 19 20 vssxDoc.Save 21 vssxDoc.Close 22 vsoApp.Quit 23 24End Sub 25 26Sub test_update() 27 test_vssx_file = ”Flowchart_v1.0.0.vssx" 28 Call Input_Version_Information(test_vssx_file) 29 30End Sub
回答1件
あなたの回答
tips
プレビュー