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

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

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

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

Q&A

解決済

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

sanmaserver
sanmaserver

総合スコア3

VBA

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

2回答

1グッド

2クリップ

25300閲覧

投稿2021/06/10 05:40

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

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

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

ka.saitoh👍を押しています

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

2

自己解決

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

(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

ka.saitoh, M.Fuku👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

0

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

投稿2022/08/24 06:58

M.Fuku

総合スコア4

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

VBA

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