(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。初心者向けエクセルVBAのシリーズとして、請求データから請求書を作る方法をお伝えしています。請求データ一覧から請求書を自動で作成するシリーズのVBA講座です。今回は間違いなくお世話になる条件分岐If~Thenの使い方の超基本をマスターしていき特定のデータのみ転記するように改良していきます。tonari-it.com2015.05.30エクセルVBAで条件分岐処理を行うIf文の使い方についてお伝えしました。エクセルVBAでコピペする場合、セルをひとつひとつコピペするよりも、セル範囲でコピペした方が実行速度も速くなりますし、すっきりとしたコードで書くことができます。For~Next文を使って、行単位で移動させながらコピペしたいときがありますよね。いうことで、今回はエクセルVBAでFor~Next文でセル範囲を一行ずつ移動させる方法をお伝えします。本記事は以下のYouTube動画と連動していますので、合わせてご覧いただければと思います。前回のおさらい:セル範囲を一行ずつ移動させながらコピペしたい変数を使ってセル範囲を指定するRangeプロパティで2つのセルを指定する方法Offsetプロパティを使う方法まとめ連載目次:データ一覧から請求書を自動で作る前回のおさらい:セル範囲を一行ずつ移動させながらコピペしたいまず、今回のお題から紹介します。以下のような請求データがあります。この中から、納品日の年月が2018年1月のもののみを抽出して、別のシートに転記をしたいというのがやりたいことです。前回作成したプログラムはこちらです。Sub一応、目的は達成できていますが、14~16行目のFor~Next文を見てみると、列方向へ移動しながらセル一つ一つをコピペするような内容になっていますよね。以下の記事でもお伝えした通り、セルの転記は一つ一つではなく、まとめて行ったほうが処理速度やコードの見やすさの点で良いことが多いのです。【初心者向けエクセルVBA】セル範囲を一気にまとめてコピーする方法エクセルVBAで請求データ一覧から請求書を自動で作成するシリーズ、まだまだ続きます。今回は、エクセルVBAでセル範囲を一気にまとめてコピーするCopyメソッドの使い方についてお伝えします。tonari-it.com2018.02.15ですから、今回はその列方向のFor~Nextをせずに行単位でセル範囲を移動しながら、まとめて転記をする方法を考えていきたいと思います。変数を使ってセル範囲を指定するセル範囲のコピーであれば、対象のセル範囲を「wsData.Range(“B2:D2”)」というようにアドレスで表現する方法が真っ先に思いつきます。今回は「納品日が2018年1月なのかどうか」を1行ずつFor~Next文で動かしながら判定をしていく必要があります。アドレスでの指定ではそれが叶いません。「カウント用変数を使ったセル範囲の指定」の仕方を知る必要があります。一つの方法として、先頭のセルと末尾のセルの2点を指定したRangeプロパティによる方法があります。末尾のセル)先頭のセルはつまり取得したいセル範囲の左上のセル、末尾のセルは右下のセルで、それぞれRangeオブジェクトを指定します。「請求データ」シートの「B2:D2」のセル範囲であれば、以下のように書けば取得できます。4))ですから、これをFor~Next文内でカウント用変数を使って表現すると、冒頭のプログラムの15~17行目は以下のように書き換えることができます。1)そこそこシンプルになりましたよね。あと、コピペの回数も減りました。Offsetプロパティを使う方法もうひとつ、別の方法としてOffsetプロパティを使う方法があります。Offsetプロパティは行数と列数を整数で指定することで、元のセル範囲を平行移動した位置のセル範囲を取得することができます。列方向の移動数)ですから、例えば「B1:D1」から1行プラスしたセル範囲であれば、以下のようにして取得できます。0)この方法を使うと、冒頭のプログラムの15~17行目は以下のようになります。1)Offsetプロパティの詳細は以下記事ご覧くださいね。シリーズで、請求データ一覧から請求書を作成する方法についてお伝えしています。今回は、エクセルVBAでセル範囲を並行移動する方法とセル範囲をリサイズする方法です。tonari-it.com2018.02.17まとめ以上、エクセルVBAでFor~Next文内でセル範囲を一行ずつ移動させる方法について解説しました。まとめのコードはこちらです。Subセル一つ一つやってもいいのですが、できるだけセルの読み書きの回数は減らしたほうが良いプログラムになります。解決方法もRangeプロパティで2つのセルを指定する方法、Offsetプロパティを使う方法など、選択肢がいくつもあります。いつも「もっといい方法あるかな?」と考えながら作成をしていきたいですよね。次回は、初期処理として、転記先のセル範囲をクリアする方法についてお伝えします。【初心者向けエクセルVBA】セル範囲のクリア~ClearContentsメソッドとClearメソッド初心者向けエクセルVBAシリーズとして、請求書を作成するマクロの作り方をお伝えしています。今回は、エクセルVBAでセル範囲の値をクリアするClearContentsメソッドとClearメソッドの使い方です。tonari-it.com2018.02.23どうぞお楽しみに!連載目次:データ一覧から請求書を自動で作るお仕事において特定のデータ一覧から必要な情報を抽出するということは頻繁にありうると思います。ここではデータ一覧から請求書を作るということを目標に、実務で使えるスキルをまっすぐに身に着けることを目的としています。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。関連記事Excel・VBA活用術エクセルVBAでIEを操作するクラスにname属性で取得した要素から内容を取り出すプロパティを作成エクセルVBAでIEスクレイピングをするときに便利なクラスの作り方をお伝えしております。今回は、エクセルVBAでIEを操作するクラスにname属性で取得した要素から内容を取り出すプロパティを追加していきます。【エクセルVBA】シートの追加も削除も、名前さえ変えさせない!VBAでブックの保護を設定する方法エクセルVBAのProtect/Unprotectメソッドを使ったブックの保護設定と、解除の方法をご紹介しています。このメソッドをvbaでの処理のためシートの追加や削除をされたくないエクセルツールに仕込んでおけば、ユーザによる勝手なシートの追加や削除、名前の変更を防ぐことができるようになります。【脱エクセルVBA初心者】データが含まれる範囲全体を一発で取得してSortで並び替え脱エクセルVBA初心者向けのテクニックとして、CurrentRegionプロパティでデータ範囲を塊で取得して、それをSortメソッドで並び替えをする方法についてお伝えしていきます。2016.07.10Excel・VBA活用術エクセルVBAでAccessデータベースの複数のレコードをまとめて上書き更新する方法エクセルVBAでAccessデータベースを操作する方法についてのシリーズです。今回はSQLのUPDATE文を使ってAccessデータベースの複数レコードをまとめて上書き更新する方法についてお伝えします。【エクセルVBA】AfterUpdateイベントでテキストボックス同士を連動させてみようエクセルユーザーフォーム上の複数のテキストボックスを、AfterUpdateイベント内で連動させる方法をご紹介しています。テキストボックスに入力された値から、ワークシート上のリストを検索して、検索結果を別のテキストボックスに表示させるという、マスタ管理画面や、検索画面などで使える方法です。【エクセルVBA入門】マクロを作るときに知っておきたいマスタデータのことエクセルVBAを使ってバラバラの経費精算書データを集約するシリーズです。今回は、エクセルVBAでマクロを作るときに知っておきたいマスタデータのこと、またその準備の仕方についてお伝えしていきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント107セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント107セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。ご依頼・お見積などお気軽にどうぞ!お問い合わせフォーム新着記事GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.16【エクセルVBA】ユーザーフォームにコンボボックスを追加する方法2020.01.162020.01.16GASでGoogleスライドを操作するSlidesサービスの基礎の基礎2020.01.152020.01.16GASでGoogleスライドのプレゼンテーションを操作するはじめの一歩2020.01.142020.01.15GASのconsoleクラスのメソッドで実行時間をログ出力する方法2020.01.122020.01.12Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。