Excel VBAに関する質問掲示板です。
Excel VBA 質問スレッド No.197 (解決済)
thunderbird で エクセルのセルを範囲指定してコピー→本文へ貼り付け
投稿者 : mskz 投稿日時 : 2021/03/21(Sun) 04:25:19 OS : Windows 10 EXCEL : Excel 2016
thunderbirdで範囲指定したセルをコピーして、本文に貼り付けをしたいのですが
うまくいきません。
bodystring=Range(A21:E69).value
だとA21のみが本文に表示されます。
わかる方がいたら教えて頂きたいです。
Sub 夜メール作成()
'
' 夜メール作成 Macro
'
Dim mailadto As String
Dim substring As String
Dim bodystring As String
sPath = """C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe"" -compose "
mailadto = "11111@outlook.jp"
substring = Day(Date) & "." & "タイトル"
Range("A21:E69").Select
Selection.Copy
bodystring=
End With
Shell sPath & "to=" & mailadto & "," & "subject=" & substring & "," & "body=" & bodystring
End Sub
thunderbirdで範囲指定したセルをコピーして、本文に貼り付けをしたいのですが
うまくいきません。
bodystring=Range(A21:E69).value
だとA21のみが本文に表示されます。
わかる方がいたら教えて頂きたいです。
[返信 1] Re : thunderbird で エクセルのセルを範囲指定してコピー→本文へ貼り付け
投稿者 : ヘンリー 投稿日時 : 2021/03/21(Sun) 10:37:28
やりたい事がコピー&ペーストなのか
転記なのかはっきりしませんが、
転記でよければ、以下の様に
「文字列を組み立てる」
という方法でどうでしょうか。
この方法は、コピー&ペーストではないので、
罫線等の情報は貼りつきません。
当方、thunderbirdを使用したことがなく、
また、テスト環境もないですが、参考になれば幸いです。
やりたい事がコピー&ペーストなのか
転記なのかはっきりしませんが、
転記でよければ、以下の様に
「文字列を組み立てる」
という方法でどうでしょうか。
Function CreateBody(rngRange As Range) As String
Dim lngRow As Long
Dim lngCol As Long
With rngRange
For lngRow = .Row To .Row + .Rows.Count - 1
For lngCol = .Column To .Column + .Columns.Count - 1
CreateBody = CreateBody & Cells(lngRow, lngCol) & vbCrLf
Next lngCol
Next lngRow
End With
End Function
この方法は、コピー&ペーストではないので、
罫線等の情報は貼りつきません。
当方、thunderbirdを使用したことがなく、
また、テスト環境もないですが、参考になれば幸いです。
[返信 2] Re : thunderbird で エクセルのセルを範囲指定してコピー→本文へ貼り付け
投稿者 : ヘンリー 投稿日時 : 2021/03/21(Sun) 10:52:24
■[返信 1] ヘンリーさん(2021-03-21 10:37:28)の記事
> やりたい事がコピー&ペーストなのか
> 転記なのかはっきりしませんが、
> 転記でよければ、以下の様に
> 「文字列を組み立てる」
> という方法でどうでしょうか。
>
> Function CreateBody(rngRange As Range) As String
> Dim lngRow As Long
> Dim lngCol As Long
>
> With rngRange
> For lngRow = .Row To .Row + .Rows.Count - 1
> For lngCol = .Column To .Column + .Columns.Count - 1
> CreateBody = CreateBody & Cells(lngRow, lngCol) & vbCrLf
> Next lngCol
> Next lngRow
> End With
>
> End Function
>
> この方法は、コピー&ペーストではないので、
> 罫線等の情報は貼りつきません。
>
> 当方、thunderbirdを使用したことがなく、
> また、テスト環境もないですが、参考になれば幸いです。
■追記です。
>bodystring=Range(A21:E69).value
この命令は、貼り付けの命令文ではありません。
値の代入命令です。
細かいようですが、コンピュータは「おばかさん」なので、
「貼り付け」という命令と、「代入」という命令は別物です。
このような事を常に意識しておくと、
プログラミングの力がついてきます。
例えば、「貼り付け」という命令を実行したい場合、
人がやる場合、thunderbirdというメールソフトを立ち上げて、
そのメールソフトの上で右クリックメニューにある「貼り付け」という
命令を選択することになります。
それを、プログラムで実行したければ、
同じように同じ順番で記述しなければなりません。
つまり、thunderbirdを起動して
thunderbird上で右クリックをするという命令になるわけです。
その場合、以下のようなことをする必要があると思います。
thunderbirdというメールソフトをObject変数として製作する(CreateObject)
そして、その製作されたオブジェクトの貼り付けメソッドを使用する
このように考えて、それぞれネットで調べながら作成すると、
プログラミング力がついてくると思います。
■[返信 1] ヘンリーさん(2021-03-21 10:37:28)の記事
> やりたい事がコピー&ペーストなのか
> 転記なのかはっきりしませんが、
> 転記でよければ、以下の様に
> 「文字列を組み立てる」
> という方法でどうでしょうか。
>
> Function CreateBody(rngRange As Range) As String
> Dim lngRow As Long
> Dim lngCol As Long
>
> With rngRange
> For lngRow = .Row To .Row + .Rows.Count - 1
> For lngCol = .Column To .Column + .Columns.Count - 1
> CreateBody = CreateBody & Cells(lngRow, lngCol) & vbCrLf
> Next lngCol
> Next lngRow
> End With
>
> End Function
>
> この方法は、コピー&ペーストではないので、
> 罫線等の情報は貼りつきません。
>
> 当方、thunderbirdを使用したことがなく、
> また、テスト環境もないですが、参考になれば幸いです。
■追記です。
>bodystring=Range(A21:E69).value
この命令は、貼り付けの命令文ではありません。
値の代入命令です。
細かいようですが、コンピュータは「おばかさん」なので、
「貼り付け」という命令と、「代入」という命令は別物です。
このような事を常に意識しておくと、
プログラミングの力がついてきます。
例えば、「貼り付け」という命令を実行したい場合、
人がやる場合、thunderbirdというメールソフトを立ち上げて、
そのメールソフトの上で右クリックメニューにある「貼り付け」という
命令を選択することになります。
それを、プログラムで実行したければ、
同じように同じ順番で記述しなければなりません。
つまり、thunderbirdを起動して
thunderbird上で右クリックをするという命令になるわけです。
その場合、以下のようなことをする必要があると思います。
thunderbirdというメールソフトをObject変数として製作する(CreateObject)
そして、その製作されたオブジェクトの貼り付けメソッドを使用する
このように考えて、それぞれネットで調べながら作成すると、
プログラミング力がついてくると思います。
[返信 3] Re : thunderbird で エクセルのセルを範囲指定してコピー→本文へ貼り付け
投稿者 : mskz 投稿日時 : 2021/03/22(Mon) 02:09:05
> このように考えて、それぞれネットで調べながら作成すると、
> プログラミング力がついてくると思います。
>
>
大変ご丁寧にありがとうございます。
当方プログラミング知識0ですが、社内の事情で先週からマクロ作成をおこなっております。
基礎的な考え方までご指導いただいて、ありがたいです。
結果的にはThunderbirdでは動作せず、outlookであれば成功したので
そちらで運用してみます。
> このように考えて、それぞれネットで調べながら作成すると、
> プログラミング力がついてくると思います。
>
>
大変ご丁寧にありがとうございます。
当方プログラミング知識0ですが、社内の事情で先週からマクロ作成をおこなっております。
基礎的な考え方までご指導いただいて、ありがたいです。
結果的にはThunderbirdでは動作せず、outlookであれば成功したので
そちらで運用してみます。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
返信入力フォーム
( 処理日時 : 2021-04-21 08:44:27 )