• ベストアンサー

エクセルからメールを送るマクロについて

エクセルのシートを本文にしてメールを送るマクロを 考えているのですが、シートを本文にするところまでは いいのですがあて先のメールアドレスを指定するには どうしたらいいか教えて下さい。 以下の記述でシートを本文、件名をブック名にする事 までは出来ています。 Sub Macro1() With ThisWorkbook .EnvelopeVisible = IIf(.EnvelopeVisible, False, True) End With End Sub

  • mar00
  • お礼率100% (33/33)

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

ウェブ照会っていうのは..確かに無駄ではないアドバイス。 『Excel 2002 または Excel 2003 で Visual Basic for Applications を使用して電子メール メッセージでセル範囲を送信する方法』 http://support.microsoft.com/kb/816644/ja >.Item.To = "E-Mail_Address_Here" ここで指定するようですね。 EnvelopeVisibleって何かなーってGoogle君に訊いたら教えてくれました。 #ぃやー..回答側としても訊いてみると良い事ありますね:P 勉強になりました。

mar00
質問者

お礼

親切、丁寧なご回答ありがとうございます。 とても参考になりました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

Envelopeて何ですか。こんなオブジェクト、何処にありますか。 「VBA メイル送信」でGoogleででも照会して勉強してから疑問点を質問したら。 CDO ばsp21 その他 の記事が出る。

mar00
質問者

お礼

ご回答ありがとうございました。

mar00
質問者

補足

お礼を使用してしまっているので補足を使用させていただきます。 ご回答を頂いた事には感謝しています。 たしかに、ここでは何も調べていないのではないか、ヘルプをみればすぐ解るのではないかとような質問もみられますが、質問する前に自分で調べるのは、私的には常識だと思っています。 「VBA メイル送信」でGoogleで照会しても別の方法はでてきますが、ほぼ見た所ばかりでした。 質問に記述したマクロでやる方法を探していたのです。 >Envelopeて何ですか。こんなオブジェクト、何処にありますか。 EnvelopeではなくてEnvelopeVisible です。

関連するQ&A

  • Excelマクロ教えてください。

    いつも大変お世話になっております。 あるシートにあるフォントのすべてをMSゴシックにしたいのですが、 マクロ記録→全選択してフォント変更→記録解除 で下記のマクロができました。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2007/11/21 ユーザー名 : TEST ' ' Cells.Select With Selection.font .Name = "MS ゴシック" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With End Sub 全選択せずに、あるシートすべてのフォントを変更する方法はありますか? シートのフォントを変更するだけの目的です。 よろしくお願いします。

  • excelマクロ記述

    EXCELのBOOKがあり、n枚のシートを含んでいます。 Macro1という名称のマクロで、 そのBook内のすべてのシートにMacro2というマクロを実行させる という場合、Macro1はどのように書けばいいのですか。 次次にシートを開くという操作をどう表すか? このMacro2では、例えばシートの文字の表示を75%のサイズで表示のようなものを考えています。 またそのときmacro2は、何か記述の追加が必要ならそれはどのようなものか。 よろしくお願いいたします。 Sub Macro1( ) ' Macro1 Macro ' 次次とシートを開き、75%サイズにする xxxxxxxx Sub Macro2( ) ' Macro1 Macro ActiveWindow.Zoom = 75 End Sub End Sub

  • エクセルマクロ 教えてください

    エクセルの自動記録でマクロを取り組み始めたばかりの初心者です。 本部から毎月送られてくるエクセルファイルにこちらで別のワークブックに記録したマクロを使って加工しようとしていますが方法がわかりません。 他の人がこのファイルを間単に加工出来るようマクロを使って (マクロのコードの書き換え等の作業をしないで)行えるようにしようとしています。 ※送られれくるエクセルファイルは月毎にファイル名が違います(シート名は変わりません)。 下記は自動記録の内容ですがこれを適用させる方法であります。 宜しくお願いいたします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/8 ユーザー名 : ******* ' ' ActiveWindow.TabRatio = 0.819 Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select Sheets("Sheet1").Activate With ActiveWindow .DisplayHeadings = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With Sheets(Array("Sheet6", "Sheet7", "Sheet1", "Sheet2")).Select Sheets("Sheet1").Activate ActiveWindow.Zoom = 120 End Sub

  • 現在のフォルダからテキストを読み込むエクセルマクロ

    小さな会社で事務仕事をしております。 仕事上、困ったことがあり、どなたか教えて頂きたいです。 テキストファイルをエクセルに読み込み、 ある文字にて区切り、セルに張りつけたいのです。 テキストの数が多いため、マクロを作成したいと思っております。 マクロの記録にて下記(ソース)まで来ているのですが、 実際にやりたいのは、 「現在のエクセルブックと同じフォルダにある」テキストファイルを読み込むことなのです。 私が記録したマクロでは、「固定フォルダ」になっており、 例えば、フォルダ名が変わってしまうと、動作しません(テキストを読み込めません)。 Sub Macro3() ' ' Macro3 Macro ' ' With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Users\crown_800\test.txt", Destination:= _ Range("$A$1")) .Name = "test" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 932 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = True .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = True .TextFileOtherDelimiter = "[" .TextFileColumnDataTypes = Array(1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub Webにてカレントディレクトリの取得方法を勉強し、 下記ソースに反映しようとはしているのですが、うまくいきません。 どなたかご相談に乗って頂けないでしょうか? よろしくお願いいたします。

  • 現在のフォルダからテキストを読み込むエクセルマクロ

    小さな会社で事務仕事をしております。 仕事上、困ったことがあり、どなたか教えて頂きたいです。 テキストファイルをエクセルに読み込み、 ある文字にて区切り、セルに張りつけたいのです。 テキストの数が多いため、マクロを作成したいと思っております。 マクロの記録にて下記(ソース)まで来ているのですが、 実際にやりたいのは、 「現在のエクセルブックと同じフォルダにある」テキストファイルを読み込むことなのです。 私が記録したマクロでは、「固定フォルダ」になっており、 例えば、フォルダ名が変わってしまうと、動作しません(テキストを読み込めません)。 Sub Macro3() ' ' Macro3 Macro ' ' With ActiveSheet.QueryTables.Add(Connection:= _ "TEXT;C:\Users\crown_800\test.txt", Destination:= _ Range("$A$1")) .Name = "test" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 932 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = True .TextFileTabDelimiter = True .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = False .TextFileSpaceDelimiter = True .TextFileOtherDelimiter = "[" .TextFileColumnDataTypes = Array(1, 1, 1) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With End Sub Webにてカレントディレクトリの取得方法を勉強し、 下記ソースに反映しようとはしているのですが、うまくいきません。 どなたかご相談に乗って頂けないでしょうか? よろしくお願いいたします。

  • excelマクロですべてのハイパーリンク解除したい

    excel2016で、ワークシート内のハイパーリンクをすべて解除したいと思います。 すべて削除するマクロは Sub Sample()  With ThisWorkbook.Worksheets("Sheet1")   .Hyperlinks.Delete 'ハイパーリンク削除  End With End Sub なのですが、これを解除の命令に変えて Sub Sample()  With ThisWorkbook.Worksheets("Sheet1")  .ClearHyperlinks 'ハイパーリンク解除  .Font.Underline = False '文字のアンダーライン解除  .Font.ColorIndex = xlAutomatic '文字色を自動設定  End With End Sub とするとエラーになってしまいます。 どのようにすれば良いでしょうか?

  • エクセルのマクロをブック全体に

    マクロに関してはずぶの素人です、Q&Aのサイトで目的にかなったものを見つけ 設定したら結果は満足するものでした。 「シートを保護した状態で、グループ化の表示・非表示を切り替えるマクロ」 Sub Auto_Open() With Worksheets("Sheet1") .EnableOutlining = True .Protect UserInterfaceOnly:=True End With End Sub これをブック全体に反映できるマクロを教えて下さい。 ブック内のシート数は多いもので10シートほど、シート名は和英混合です。 ブックの数は40程有り全てのシートにマクロを設定するのは途方もなく 時間が掛かりそうで困っています。 当方のエクセルはExcel2007SP3です、宜しくお願いします。

  • エクセルで2つのマクロを結合したい

    毎度お世話名なっております。 以前ここで教えてもらった保存時に全シートの入力済みセルに自動で保護がかかる<マクロ1>を教えてえもらって非常に多くのBookに採用しているのですが、今回同じBookの「計算表」シートの特定のいくつかのセルだけ保護がかからないようにしたく試行錯誤で2つのマクロをつなげてみたのですが情けないことに期待通りに動かず。 単に最初のマクロのEnd Subを削除しただけではうまくいかず。 どなたかHELPお願い致します。 <マクロ1> Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Const MyPassword = "" 'パスワード(省略可) Dim sh As Worksheet On Error Resume Next For Each sh In Worksheets sh.Unprotect Password:=MyPassword With sh.Cells '全セルのロックを外す .Locked = False '定数が含まれているセルにロックを掛ける .SpecialCells(xlCellTypeConstants).Locked = True '数式が含まれているセルにロックを掛ける .SpecialCells(xlCellTypeFormulas).Locked = True End With sh.Protect DrawingObjects:=True, Contents:=True, _ Scenarios:=True, Password:=MyPassword Next On Error GoTo 0 End Sub ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sub 保護解除() <マクロ2> ' 保護解除 Macro '' Sheets("計算表").Select Range("C6:D6").Select ActiveSheet.Unprotect End Sub

  • マクロを教えてください。

    ワードでマクロがうまくいきません。 マクロの知識はほとんどないのですが、「マクロの記録」の機能を使い、ワードで試しています。 今回は、 「{}の括弧でかこまれた単語を探し出し、その単語を括弧ごと消去する」 というのをしたいのです。 例えば、 ------------------------------- あいうえお{事実}ということ ↓ あいうえおということ ------------------------------ にしたいのです。 自分は ---------------------------------------- -置換-で、「検索する文字列」に「{*}」 「置換後の文字列」になにも書かない で、「置換」をクリック -------------------- マクロの記録を選択した後、上のように作業しました。 そしてマクロの記録をとめました。 が、なにもおこりません。 (*はワイルドカードのつもりなのですが、間違っていますでしょうか。) なにか変な操作をしたのか、と五度くらい試したのですが、 やはり動きません。 中身は、↓のようでした。 -------------------- Sub Macro1() ' ' Macro1 Macro ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "{*}" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub -------------------- どうしてうまく動かないのでしょうか。 教えていただけるとありがたいです。よろしくお願いします。

  • Excelのイベントマクロ

    Private Sub Worksheet_Activate()に関する質問です。 ワークシート1と2があるとします。 ワークシート1は普通のデータが記されており、それのソートを実行するマクロをMacro1、そのデータから重複したものを外してソートするマクロをMacro2とし、Macro1から呼び出してます。 今、シート2を開いたときは必ず、シート1でMacro1を実行するようにしたいのですが、以下のように記述すると、無限ループになってしまいうまくいきません。 どなたか、方法をお教えください。 Sheet2に記載したイベントマクロ Private Sub Worksheet_Activate() Sheets("Sheet1").Select Macro1 Sheets("Sheet2").Select End Sub 標準モジュールに記載したマクロ Sub Macro1() Dim team As Integer ActiveSheet.Unprotect ("pass") Range("A3:c18").Select Selection.Sort Key1:=Range("c3"), Order1:=xlAscending, Key2:=Range("A3") ,Order2:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal team = Range("b1").Value ActiveSheet.PageSetup.PrintArea = "$A$3:$c$" + CStr(team + 2) Macro2 Range("A1").Select ActiveSheet.Protect ("pass") End Sub Sub Macro2() Range("i3:j18").ClearContents Range("i3").Select Selection.Consolidate Sources:="R3C6:R18C7", Function:=xlMax, TopRow:=False,LeftColumn:=True, CreateLinks:=False Range("i3:k18").Select Selection.Sort Key1:=Range("k3"), Order1:=xlAscending, Header:=xlNo,OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal Range("j3:j18").Select Selection.NumberFormatLocal = "0_);[赤](0)" End Sub

専門家に質問してみよう