2016-04-27 10 views
0

Excelマクロを使用して共有ポイントで図をエクスポートする方法を知りたかったのですが、Excelグラフを共有ポイントにエクスポートする方法

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    ExportGraph 
End Sub 


Sub ExportGraph() 
    ' Déclaration des variables 
    Dim Sheets As Variant 
    Dim NomSheet As String 
    Dim Graph As Variant 
    Dim NomGraph As String 
    Dim Fich As String 
    Dim i As Byte 

    ' Boucle parcourant les feuilles 
    For Each Sheets In ActiveWorkbook.Sheets 
     NomSheet = Sheets.Name 
     ' On parcours les graphiques de la feuille 
     For Each Graph In Sheets.ChartObjects 
      i = i + 1 

      ' Selection d'un graphique 
      Sheets.ChartObjects(i).Activate 

      ' Récupération du nom du graphique 
      NomGraph = ActiveChart.ChartTitle.Characters.Text 

      ' Chemin où l'on veut exporter les graphiques 
      Fich = "d:\LocalData\p080931\Desktop\racc\" 
      ' On lance la procédure d'export 
      ActiveChart.Export Filename:=Fich & NomGraph & ".gif", 
FilterName:="GIF" 
     Next 
    Next 
End Sub 

しかし、私は私のSharePointドキュメントライブラリに直接エクスポートしたい:私はすでにGIF画像としての私のグラフをエクスポートするマクロをコーディングしました

は、ここに私のコードです。

これを行うにはどうすればよいですか? URLで動作する関数が見つかりませんでした。

どうもありがとう

答えて

0

あなたのSharePointサイト/サブサイトにネットワークドライブをマップして、あなたのコードの輸出がそれを持っている可能性があります。 Windowsエクスプローラを開き、左側の「コンピュータ」を右クリックし、「ネットワークドライブの割り当て...」をクリックします。 [ネットワークドライブの割り当て]ダイアログが表示されたら、使用するドライブ文字を選択し、SharePointサイトへのURLの[フォルダ]ドロップダウンリストに貼り付けます。

enter image description here

enter image description here

は、次に、あなたのコードでは、この共有ドライブへのパスをポイントし、ドキュメントライブラリがどこに位置しています。

Fich = "S:\DocumentLibrary\" 

+0

あなたの答えにタンク。しかし、それは動作しません、私はExcelからのエラーはありませんが、ファイルがエクスポートされていません。それは完全にドラッグ&ドロップで動作しますが、マクロでは動作しません(私はパスを20回検証し、正しいです)。私は自分のコンピュータ上の管理者とはみなされていませんが、おそらくそれが原因です。 – First

+0

今、それは動作します、私は間違ったパスをコピーした、私は2と私は間違ったものを選択しました。ご協力いただきありがとうございます – First

0

私はこれが遅いことを認識しますが、うまくいけば、それは他の人にとって有益です。ただし、Windowsのバグがありますが、ブラウザでSharePointを開き、SharePointライブラリにナビゲートし、Connect &エクスポートセクションのライブラリタブの下にある「エクスプローラで開く」ボタンを押すと、下のコードが機能するだけです。これはマシンごとに1回だけ行う必要があります。

ファイルの種類は、以下に示す例を使用して変更できます。 BMPは最高品質の画像を提供するようです。

Dim oNetwork As Object 
Set oNetwork = CreateObject("WScript.Network") 
oNetwork.MapNetworkDrive "Z:", "http://SharePoint.com/sites/MySite/SiteAssets/SitePages/Report", False 

を次にドライブ

oNetwork.RemoveNetworkDrive "Z:" 
を削除:

Sub PublishSharePoint() 

'Unprotect worksheet 
Worksheets("My Worksheet").Unprotect 

Call SaveImage("My Worksheet", "B8:N46", "Report Name") 

'Protect worksheet 
Worksheets("My Worksheet").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True 

End Sub 

これは、ネットワークドライブはこれも動作するようサイトをマッピングする場合

Sub SaveImage(sSheet As String, sRange As String, sFile As String) 


Worksheets(sSheet).Activate 

Set Plage = ThisWorkbook.Worksheets(sSheet).Range(sRange) 

Plage.CopyPicture 

With ThisWorkbook.Worksheets(sSheet).ChartObjects.Add(Plage.Left, Plage.Top, Plage.Width, Plage.Height) 
.Activate 
.Chart.Paste 
.Chart.ChartArea.Border.LineStyle = xlNone 
'.Chart.Export "C:\...\" & nameFile & ".png", "PNG" 
'.Chart.Export "C:\...\" & nameFile & ".jpg", "JPG" 
.Chart.Export "\\url.sharepoint.com\sites\SiteAssets\SitePages\Page\" & sFile & ".bmp", "BMP" 
End With 

Worksheets(sSheet).ChartObjects(Worksheets(sSheet).ChartObjects.Count).Delete 

Set Plage = Nothing 

End Sub 

以下のルーチンを呼び出します

関連する問題