Excel VBA 質問スレッド №344 (未解決)

VBAでSharePointにファイルをアップロードする方法

投稿者 : F@NKS     投稿日時 : 2021/08/10(Tue) 16:10:29     OS : 未指定     EXCEL : 未指定
下記のコードで実行しても
実行時エラー52「ファイル名または番号が不正です」
となります。

この方法でなくても良いので
VBAでSharePointにファイルをアップロードする方法があれば教えて下さい

Sub SaveAtSharepoint()

    Dim url As String '保存先のシェアポイントのURL
    Dim conv_url As String 'シェアポイントのURLをフォルダ名に変換した文字列。フルパスなのでファイル名まで。
    Dim local_full_path As String 'シェアポイントに保存したいデータのフルパス
    Dim fso As Object 'FileSystemObjectのインスタンス化
    
    '>初期設定
    url = "シェアポイント上のURL" & "ファイル名.xlsx"
    local_full_path = "アップロードしたいファイルのフルパス"
    '<初期設定
    
    Set fso = CreateObject("Scripting.FileSystemObject")  'インスタンス生成
    conv_url = ConvertDirectoryPath(url)
    
    If fso.FileExists(local_full_path) Then
        fso.CopyFile local_full_path, conv_url
    End If
    
    Set fso = Nothing

End Sub

Function ConvertDirectoryPath(path) As String
    'このプロシジャはシェアポイントのURLをドキュメントライブラリのディレクトリパスに変換する
    ConvertDirectoryPath = Replace(path, " ", "%20")
    ConvertDirectoryPath = Replace(ConvertDirectoryPath, "/", "\")
    ConvertDirectoryPath = Replace(ConvertDirectoryPath, "http:", "")
End Function

スポンサーリンク
[返信 1] Re : VBAでSharePointにファイルをアップロードする方法
投稿者 : ハヤシライス     投稿日時 : 2021/08/10(Tue) 16:31:01
実際に試したコードを掲載されたほうがよいかと。
以下の部分はどうなっていますか?

url = "シェアポイント上のURL" & "ファイル名.xlsx"
local_full_path = "アップロードしたいファイルのフルパス"

[返信 2] Re : VBAでSharePointにファイルをアップロードする方法
投稿者 : F@NKS     投稿日時 : 2021/08/11(Wed) 08:18:17
■[返信 1] ハヤシライスさん(2021-08-10 16:31:01)の記事
> 実際に試したコードを掲載されたほうがよいかと。
> 以下の部分はどうなっていますか?

> url = "シェアポイント上のURL" & "ファイル名.xlsx"
> local_full_path = "アップロードしたいファイルのフルパス"

下記のようになっています。
シェアポ、ローカルともにアクセスできますので、アドレスには問題ないかと・・・

url = "https://xxxxxxx.sharepoint.com/sites/xxxxx/xxxxx/xxxxx/xxxxx/xxxxx/2020年度/202101/" & "TEST.xlsx"
local_full_path = "C:\Users\xxxxxxxx\Downloads\TEST.xlsx"

[返信 3] Re : VBAでSharePointにファイルをアップロードする方法
投稿者 : ハヤシライス     投稿日時 : 2021/08/11(Wed) 08:58:42
動作検証できる状況でないので、推測ですが。

以下の部分で、SharePointのアドレスを書き換えていますよね。

conv_url = ConvertDirectoryPath(url)

で、「ConvertDirectoryPath」プロシージャを見ると、以下の記述があります。

ConvertDirectoryPath = Replace(ConvertDirectoryPath, "http:", "")

これは、「http:」を「""」に置換する処理ですが、頂いたコードでは、SharePointのアドレスが、「https://xxxxxxx・・・」と「https:」から始まっています。
なので、この置換処理がうまく言っていないのでは?

[返信 4] Re : VBAでSharePointにファイルをアップロードする方法
投稿者 : F@NKS     投稿日時 : 2021/08/17(Tue) 11:08:32
■[返信 3] ハヤシライスさん(2021-08-11 08:58:42)の記事
> 動作検証できる状況でないので、推測ですが。

> 以下の部分で、SharePointのアドレスを書き換えていますよね。

> conv_url = ConvertDirectoryPath(url)

> で、「ConvertDirectoryPath」プロシージャを見ると、以下の記述があります。

> ConvertDirectoryPath = Replace(ConvertDirectoryPath, "http:", "")

> これは、「http:」を「""」に置換する処理ですが、頂いたコードでは、SharePointのアドレスが、「https://xxxxxxx・・・」と「https:」から始まっています。
> なので、この置換処理がうまく言っていないのでは?

確かに違ってますねhttp:をhttps:に変えてみたところ
実行時エラー52「ファイル名または番号が不正です」
から
パスが見つかりませんにエラーが変わりました。
パスに原因があると思うのですが、"/"を"\"にしただけではパスとし認識できない?

[返信 5] Re : VBAでSharePointにファイルをアップロードする方法
投稿者 : るぽ     投稿日時 : 2024/04/09(Tue) 17:54:04
投稿者 様

大分経過していますが、全く同じ現象(SharePointのリストに追加しようとしています。httpsで始まるページです)でエラーになり悩んでいます。
もしこの問題が解決されていたのであれば、解決方法を教えて頂けると助かります。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-09-18 03:50:42 )
タイトルとURLをコピーしました