2017-12-21 16 views
0

VBA経由でVisual StudioからVisio図面をエクスポートするために、OrgChartウィザードを使用しようとしています。OrgChartウィザードでVBA経由でVisioにエクスポートするエラー

まず、我々は、使用して、ページの構成パラメータを設定します。

'/PAGES=<top employee> <num levels> PAGENAME=<pagename>,<top employee> <num levels> PAGENAME=<pagename>... 
strPageConfig = " /PAGES=" & ListBox1.SelectedItem & " " & lvlNum & " PAGENAME=cleanedData" 

私たちは、その後、visExcelFileと呼ばれるvaliableにExcelファイルを保存します。 次に、我々は組織図ウィザードを作成しました:

visApp = CreateObject("Visio.Application") 
visApp.visible = False 
objAddOn = visApp.Addons.ItemU("OrgCWiz") 
objAddOn.Run("/S-INIT") 

は、組織図の引数を追加して、ウィザードを実行します。

orgWizArgs = " /FILENAME=" & visExcelFile & " /NAME-FIELD=Name" & 
     " /MANAGER-FIELD=Reports_To" & strPageConfig & 
     "/DISPLAY-FIELDS=Name, Title /SYNC-ACROSS-PAGES /HYPERLINK-ACROSS-PAGES" 

objAddOn.Run("/S-ARGSTR " + orgWizArgs) 
objAddOn.Run("/S-RUN") 
visApp.visible = True 

エラーが特にときに名前、我々はstrPageConfigを設定する行から来ていますListBox1から読み込まれます。値がそれにスペースを持っている場合は(彼らは名前をしているので、2または3)、私が述べた各単語のポップアップを取得します:

Employee name "Smith" is not in your organization data. 
Employee name "John" is not in your organization data. 

を私は存在しないか、またはそれを忘れていますどのようなスペースがこれを引き起こす原因となっていますエラー?

別の問題の原因となる問題は、従業員の名前をListBox1に読み込むときに、スペースを_で置き換えますが、これらのアンダースコアが図面に表示されることです。

質問: スペースを含むデータでVBAからOrgChartウィザードを実行するにはどうすればよいですか? または: これらのオブジェクトにVBA経由で移動し、ShapeDataテキストフィールドを編集するにはどうすればよいですか?

他のサイトにも同様の質問が掲載されていますが、回答はありません。 私もそう、Visioの2013

答えて

2

あなたの文字列をクォートする必要が使用しています:

Public Function QuoteString(str as String) as String 

    Dim quotechar as String 
    quotechar = Chr(34) 

    QuoteString = quotechar & str & quotechar 

End Function 


strPageConfig = " /PAGES=" & QuoteString(ListBox1.SelectedItem) & " " & lvlNum & " PAGENAME=cleanedData" 
+0

YESSS !!!!完璧に作業しました。 – johno

+0

歓迎です:3 –

関連する問題