VBAを使用してExcelワークシートをループする方法

今すぐ共有:

ワークシートをXNUMX行ずつ読み取り、そこからデータを選択的に取得すると便利な場合があります。 以下の例は、これを行う方法を示しています。

この記事は、読者が開発者リボンを表示していて、VBAエディターに精通していることを前提としています。 そうでない場合は、Googleの「Excel開発者タブ」または「Excelコードウィンドウ」をご覧ください。

次の例では、電子メールアドレスの各行を調べ、それらをXNUMXつのアドレス行に連結することによってデータを操作します。 Excelには組み込みの転置関数がありますが、コードでは特定の宛先を除外し、区切り文字を追加する予定です。

私たちのアプリケーションは1枚だけ必要です。 以下の情報をセルAXNUMXにコピーします。

メールアドレス
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

フォームにボタンを配置して、コードを開始します。フォームにボタンを配置して、コードを開始します

仮に、メールが5通ではなく数百通あるとしましょう。それぞれのメールに同じメッセージと脚本のコピーを送信したいとします。これにはいくつかの方法がありますが、最もよく知られているのは、VBAコードからOutlookなどのメール送信ツールを呼び出す方法です。ただし、この演習には2つの目的があります。

  • ワークシートを簡単に循環する方法を示します。
  • 各行を調べてそれに基づいて行動するExcelの機能を強調します。

VBAコード

VBAコードはすべてのアドレスを連結し、それぞれの後にセミコロンを挿入して、電子メールの宛先フィールドにXNUMX回で貼り付けることができるようにします。 コードから、行を調べた後、フランス語の行が除外されることに注意してください。

モジュールを挿入し、次のように入力します。

Option Explicit
Dim strEmail As String
Dim strAll As String

Sub Main()
    strAll = ""
    Range("C2") = strAll     'clear previous program results
    Sheets("Sheet1").Select
    Range("A2").Select
    Do While ActiveCell > ""      'loop until row 7
        strEmail = ActiveCell
        If Right(strEmail, 2) <> "fr" Then      'exclude France
            strAll = strAll & strEmail & ";"
        End If
        Range("A" & ActiveCell.Row + 1).Select     'move on a row in the SAME column
    Loop
    Range("C2") = strAll
End Sub

コードはアクティブセルを列Aに保持し、行のみが移動します。 行の他の場所で情報を参照するには、次を使用します。

Variable = Activecell.offset(offset rows, offset columns)

たとえば、アクティブな行の列Bから値を取得するには、コードは次のようになります。 Activecell.offset(0、1)。 私たちがA2にいるときにA3の値を取得するには、次のようになります。 Activecell.offset(-1、0)。

コードをテストするには、ボタンをマクロ「メイン」に割り当てます。

一部のインターネットサービスプロバイダーは、スパム対策として、一度に送信できる電子メールの数を制限している場合があります。 この方法を使用する場合は、一度に数百通の電子メールを送信する前に、彼らに確認するのがおそらく最善です。

Excelファイルの破損の処理

Excelファイルの破損時折、Excel自体では復元できないほどワークブックが破損してしまうことがあります。これは、専門家を含め、ほとんどのExcelユーザーにとって大惨事です。しかし、効果的な復元ツールがあれば、復元することができます。 破損したxlsxファイル 簡単かつ迅速に。

著者紹介:

フェリックスフッカーは、のデータ復旧の専門家です DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 修理 rar 腐敗 およびSQL回復ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

今すぐ共有:

コメントは締め切りました。