質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

46748閲覧

【Excel VBA】SharePoint上のファイルを読み込みたい。

sanmaserver

総合スコア3

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

1グッド

2クリップ

投稿2021/06/10 05:40

Excel VBAの初心者です。
現在、Excel VBAでプログラミング?をしています。

あるファイルを読み書きしているのですが、コーディング中と言うこともあり、
そのファイルを自分のpcのデスクトップに置いて、それを操作していました。
しかしながら、実際はSharePoint上のファイルを操作する必要があり、
修正を求められています。

このような場合、どのようにコーディングしなおせば良いかご教示頂けませんでしょうか。
サンプルコードを提示して頂けると非常に助かります。

ka.saitoh👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

解決方法が分かりましたので、ご報告します。

(1)
初めに、sharepointでExcelファイルパスを指定する場合、「リンクをコピー」はダメです。
一度、対象のファイルを以下のようにして開きます。
・右クリック
・開く
・アプリで開く

(2)
次に、Excelのメニューバーから、対象ファイルのファイルパスを採取します。
・[ファイル]タブをクリック
・[名前をつけて保存]を選択。
・対象ファイルを右クリックし、[パスをクリップボードにコピー]を選択。

(3)
ファイルパスが「%」を含む値になると思うので、以下のコードでデコードします。
▼URLデコードするユーザー定義関数
Public Function URL_Decode(ByVal strOrg As String) As String

 With CreateObject("ScriptControl")
  .Language = "JScript"
  URL_Decode = .CodeObject.decodeURI(strOrg)
 End With
End Function

(4)
ファイルパスの末尾に「?web=1」がある場合、削除する。

https://xxx1/xxx2/xxxxxxx.xlsx?web=1
https://xxx1/xxx2/xxxxxxx.xlsx

(5)
(4)で作成したファイルパスを通常のファイルオープン、クローズの関数で
操作すれば、読み書きできると思います。

投稿2021/06/29 01:00

sanmaserver

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LAVENDER

2023/11/09 05:32

ありがとうございました。 無事にシェアポイントExcelをVBAから開くことができました。
sanmaserver

2024/01/16 08:52

良かったです。私も嬉しいです。
guest

0

URLをでコードする、末尾のファイル名以降を削除するなど明確な情報をいただきありがとうございます。

投稿2022/08/24 06:58

M.Fuku

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問