2016-06-13 3 views
0

簡単なコードをSPATHを設定するVBA:指定されたディレクトリよりもむしろ単語.EMFファイルワードに、現在のディレクトリとしてループペーストに

Sub LoopEMF() 
Dim sPic As String 
Dim sPath As String 

sPath = "C:\Users\me\Desktop\Test2\" 
sPic = Dir(sPath & "*.emf") 

Do While sPic <> "" 
    Selection.TypeParagraph 
    Selection.InlineShapes.AddPicture _ 
     FileName:=sPath & sPic, _ 
     LinkToFile:=False, SaveWithDocument:=True 
    sPic = Dir 
    Selection.TypeParagraph 
Loop 
End Sub 

、私は単純に、アクティブディレクトリを検索したいワードファイル(開いている)が配置されています。多くの検索は、驚くべきことであり、恥ずかしいものであり、おそらく私が正しいキーワードを使用していないことを示唆するものではありません。

ヘルプ?

答えて

0

私は、ExcelドキュメントのD開くとき:\ DB \ TMP \ test1.xlsm:

CurDir() returns C:\Users\[username]\Documents 

ActiveWorkbook.Path returns D:\db\tmp 

だから、CURDIRを()システムのデフォルトを持っており、変更することができます。

ActiveWorkbook.Pathは、同じ保存されたブックに対して変更されません。

たとえば、「ファイル/名前を付けて保存」コマンドを実行すると、CurDir()が変更され、ファイル/ディレクトリ選択ダイアログでランダムなディレクトリが選択されます。次に、[キャンセル]をクリックして保存をスキップします。しかし、CurDir()はすでに最後に選択されたディレクトリに変更されています。

から:
How to get current working directory using vba?

0

さらに恥ずかしい - 私は正しいコードを使用していました:

Sub NewLoopEMF() 
Dim sPic As String 
Dim sPath As String 

sPath = ActiveDocument.path & "\" 
sPic = Dir(sPath & "*.emf") 

Do While sPic <> "" 
    Selection.TypeParagraph 
    Selection.InlineShapes.AddPicture _ 
     FileName:=sPath & sPic, _ 
     LinkToFile:=False, SaveWithDocument:=True 
    sPic = Dir 
    Selection.TypeParagraph 
Loop 
End Sub 

残念ながら、Active Directoryは、同期のSharePointフォルダ内にあるため、返される名前はですハイパーテキスト(http://all残り)/これで、あなたは何が壊れているか分かっている。私はこのコードを使用してこれを考え出し:

Sub GetActiveDocumentPath() 

MsgBox ActiveDocument.path 

End Sub 

だから、簡単な解決策は、アイテムを保存するためのSharePointフォルダを使用しないことであるようです。誰でもSharePoint環境で働いている人にとっては賢明なソリューションを持っていますか?

+0

スタックオーバーフローはディスカッション "フォーラム"ではありません - それはQ&Aサイトです。したがって、「回答」にフォローアップの質問を投稿してはいけません(このような状況では回答は得られません)。 1つの方法は[編集]リンクを使用して元の質問のタイトルと内容を変更することです。もう1つは新しい質問を開始することで、これは「トピック外/再現不可」として閉じられる(または削除することもできます)。 –

関連する問題