![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
outlookからエクセルに、差出人アドレス、タイトル、本文を書き出すのに下記の内容でマクロを組んだのですが、書き出すエクセルにパスがかかっている場合どうしたらいいのでしょうか。
getobjectではなくopenのほうがいいのでしょうか。
' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub ExportToExcel()
' EXCEL ファイルをフルパスで指定します
Const EXCEL_FILE = "c:\temp\調査管理.xlsx"
Dim objItem As MailItem
Dim objBook 'As Excel.Workbook
Dim objSheet 'As Excel.Worksheet
Dim r As Integer
' メールをどのように開いているか確認
If TypeName(Application.ActiveWindow) = "Inspector" Then
Set objItem = ActiveInspector.CurrentItem
Else
Set objItem = ActiveExplorer.Selection(1)
End If
' Excel ファイルを開く
Set objBook = GetObject(EXCEL_FILE)
objBook.Windows(1).Activate
Set objSheet = objBook.Sheets(1)
' データがない行まで移動
r = 2
While objSheet.Cells(r, 1) <> ""
r = r + 1
Wend
' メールの情報を Excel ファイルに追記
With objSheet
.Cells(r, 1) = objItem.SenderEmailAddress
.Cells(r, 2) = objItem.Subject
.Cells(r, 3) = objItem.Body
End With
' Excel ファイルを閉じる
objBook.Close True
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
#1の補足。
注意:#1のマクロは、あくまでも、Excel側のブックにパスワードを設けていた場合ですから、今、ブックがパスワード付きかどうかの判定プログラムはつけていません。
No.1
- 回答日時:
こんにちは。
>エクセルにパスがかかっている場合どうしたらいいのでしょうか。
パスではなくて、パスワードですね。
>getobjectではなくopenのほうがいいのでしょうか。
パスワード入力で慌てなければ、別に、どちらでもよいのでは。
つまり、Outlook側のマクロで、自動で開けてしまうのなら、同じことだと思います。管理上の問題だと思います。
ただし、私の個人的な意見ですと、Openメソッドで開ける方法は、事前に、パスワードを使用者に聞ける点で、土壇場でエラーを出すというようなことはなくなるはずです。
以下は、パスワード入力を三回失敗すると、マクロが起動しなくなります。仮にEsc を押しても同様です。
この部分は、もう少し複雑にさせることができますが、あまり複雑にすると、今度は、管理上の問題に発展します。
なお、プロシージャ名のPublic キーワードは外しました。
'//
Const PWS As String = "abc"
Private cnt As Integer
Sub ExportToExcel()
' EXCEL ファイルをフルパスで指定します
Const EXCEL_FILE ="c:\temp\調査管理.xlsx"
Dim IPsw As Variant
If cnt > 3 Then Exit Sub
IPsw = InputBox("パスワードを入れてください。", "InputPassWord")
If IPsw <> PWS Then
MsgBox "パスワードが違います。", vbCritical
cnt = cnt + 1
Exit Sub
End If
Dim xlApp As Object 'Excel.Application ''参照設定した場合
Dim objItem As MailItem
Dim objBook 'As Excel.Workbook
Dim objSheet 'As Excel.Worksheet
Dim r As Integer
' メールをどのように開いているか確認
If TypeName(Application.ActiveWindow) = "Inspector" Then
Set objItem = ActiveInspector.CurrentItem
Else
Set objItem = ActiveExplorer.Selection(1)
End If
' Excel ファイルを開く
Set xlApp = CreateObject("Excel.Application")
Set objBook = xlApp.Workbooks.Open(EXCEL_FILE, , , , PWS, PWS)
xlApp.Visible = True
objBook.Activate
objBook.Worksheets(1).Activate
Set objSheet = objBook.Sheets(1)
' データがない行まで移動
r = 2
While objSheet.Cells(r, 1) <> ""
r = r + 1
Wend
' メールの情報を Excel ファイルに追記
With objSheet
.Cells(r, 1) = objItem.SenderEmailAddress
.Cells(r, 2) = objItem.Subject
.Cells(r, 3) = objItem.Body
End With
' Excel ファイルを閉じる (VBAである限りは、xlApp だけでよいが、残り二つも将来必要になる時が来ます)
objBook.Close True
Set objSheet = Nothing
Set objBook = Nothing
Set xlApp = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大学定期試験過去問サイト「過...
-
Excelのセルにユーザー名...
-
YouTubeが毎回ログインしないと...
-
携帯電話を解約してもSMSの受信...
-
カカオで退会せずに、アプリだ...
-
メールアドレスで上付きのハイフン
-
iPhoneのiCloudメールなよです...
-
メールをパスワードつきで送る方法
-
メールを返信したら、英語のメ...
-
LINE TCBというところからLINE...
-
メールアドレス 上バーの入力...
-
インスタの捨て垢で友達のスト...
-
インスタのアイコンについてるN...
-
YahooIDをパスワード形式にした...
-
解約済みの iPadについて 解約...
-
存在しないアドレスにメールを...
-
メールアドレスから個人を特定...
-
高一男子です 僕が絶対に悪いん...
-
パスワードがペーストできない...
-
彼女のインスタのアカウントを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelのセルにユーザー名...
-
メールをパスワードつきで送る方法
-
メールアドレスで上付きのハイフン
-
メールのマナー編
-
インスタの捨て垢で友達のスト...
-
メールを返信したら、英語のメ...
-
YouTubeが毎回ログインしないと...
-
メールアドレス 上バーの入力...
-
LINE TCBというところからLINE...
-
CSVファイルを添付するときにパ...
-
LINE Payで友だちに送金しよう...
-
存在しないアドレスにメールを...
-
URLとメールアドレス
-
iPhoneのiCloudメールなよです...
-
星の王子さまというアプリで、 ...
-
カカオで退会せずに、アプリだ...
-
メールアドレスから個人を特定...
-
携帯電話を解約してもSMSの受信...
-
ユニクロやGUのシフト管理アプ...
-
解約済みの iPadについて 解約...
おすすめ情報