これで楽に!?VBA活用こんにちは、Ryoです。Excelで行や列に対する操作を行うことは多々ありますが、羅列するデータの中で必要なデータをピックアップする際に他の行や列を非表示にすることで視認性を向上することが出来ますので、その非表示をVBAで扱う際にどう使うかについて書いていきたいと思います。サンプルとしては先ず単独/範囲での非表示や連続しない複数の行/列に対する選択方法についてと、それらを使った簡単な運用例を紹介します。1.サンプル概要、サンプルコード◆単独、及び連続する(隣接する)行/列に対する非表示方法サンプルとして以下画像の表を使います。この表に対し、「行番号8、15~17」と「列番号C、K~M」を非表示にします。サンプル実行後は以下の通り非表示となります。サンプルコードは次の通りです。Sub指定した行や列を非表示とするにはHiddenプロパティを使用します。True(非表示)又はFalse(表示)非表示とした行や列を再度表示させるには、同様の記述をして=FalseとすればOKです。サンプルコードは次の通りです。Sub不連続な行や列を指定して処理するには、Application.UnionメソッドとEntrieRow/EntrieColumnプロパティを使用します。Application.Unionメソッドについては、こちらのMSDNがわかりやすいと思いますので、よろしければご参照ください。ちなみにApplication.を前に記述せずUnionでも普通に動作しますけどね。EntrieRow/EntrieColumnは指定したセルやセル範囲を含む行・列を取得するプロパティなので、それを利用して処理対象のセルやセル範囲をサンプルコード内で指定しています。実際に使用上では不連続であることの方が多いと思いますので、この方法を知っておくと便利ですよ。◆非表示状態の解除(全体)一部の非表示状態解除であればサンプルコード記述のTrueをFalseに変えれば良いですが、全体をサッと元の表示に戻すには以下の通り記述すればOKです。Subこの指定で行と列全体に対して解除(非表示⇒表示)してくれます。2.【参考例】表内データのピックアップ本例はタブレットPCなどを使用して、Sheetに出力されたデータリストから必要とするデータのみをピックアップして表示したいケースを想定しています。S/N欄」(例はA003)を選択すると処理が実行されます。Subセルを選択した時に処理を実行するので、Worksheet_SelectionChangeを使用します。このイベントはとにかく選択したら実行されるので、処理対象外とする操作を記述しておかないとエラー頻発しますから注意が必要です。私の場合はファイル名や対象列、単独Or範囲などを指定して想定外動作は終了するようにしています。他のフォントサイズや塗りつぶし、ウィンドウ枠の固定化などは必要に応じてで良いと思いますので、参考程度に見ていただければ良いです。次の表示/非表示対象行の取得~非表示化については、選択したセルと次の行のみ表示させて列は画像内赤矢印部のみとしたいので、アクティブセル行番号から算出して対象行以外を非表示とし列の非表示対象は予め判っていますから、複数範囲をまとめて指定します。True後は強調したいセルに対してフォントサイズや色、背景色を指定して変化させればOKです。最後の方に記述しているWaitを使った処理中断は、例えば一定時間経過後に次の行を表示させることによって「誤認」を防ぐなど効果があるようなら、使えるかもしれませんね。非表示を使ったデータのピックアップ例を書いてみましたが、この辺りは色々なアプローチがありますから、参考程度に見ていただければ良いと思います。3.まとめ行や列の非表示自体は簡単なのですが、私が使う上では連続しない範囲指定をするケースが多いので、そこに焦点を当てて書いてみました。この機能も使ってみると表示したいデータを柔軟に対応出来るので、知っておくと何かと有用かと思います。何か機会があればご検討されてみるのも良いかもしれませんね。以上、行や列(単独/範囲)を非表示にする方法についてでした!今回の記事が何かの参考になれば幸いです。【VBA】図形(オートシェイプ)やシェイプ内文字の色を操作する先日の記事でVBAによるシート内に図形(オートシェイプ)を作成する内容を書きましたが、実際使用する上では作成した図形に色を塗りたい、枠線も塗りつぶした色に合わせたい、図形内に表示した文字の色を変えたい・・・等々思うことがありますよね。そこで今回はその指定方法について書いてみたいと思います。記事を読む【VBA】印刷ページ数の取得/特定シート以外を印刷するExcelのシートが複数あり、各シートに印刷対象が多くある場合は実行したら何枚になるのか判らなくなることや、特定のシートを除いて印刷したいことがありますよね。VBAでこのような処理を実行したい場合、例としてどう処理するかをサンプルコードを用いて印刷枚数の取得や特定シートを除外した印刷処理などを書いてみたいと思います。記事を読む【VBA】テーブルのリスト行を取得/削除/追加するExcelの便利な機能「テーブル」は、データをまとめてくれるので扱いやすく、表の管理も楽になるので使用する頻度も高いと思います。今回はそのテーブルの行を取得したり、新たな行追加や削除、データ入替などをVBAで行う方法について書いていこうと思います。記事を読む【VBA】EasyCommのダウンロード/初期設定と使い方について私が今も愛用させていただいているEasyComm関連で来られる方が多いようで嬉しいですね。これまでご紹介させていただいた内容は対象機器との接続等についてでしたので、ダウンロードリンク、最初のセッティングで行うインポート方法やCOMポート設定等も踏まえて使い方を解説したいと思います。バリアント型、10進数変換)を操作する関数の主なものを書いていきたいと思います。記事を読む【VBA】クイック分析機能を表示するExcel2013よりクイック分析機能が加わりましたが、その機能をVBAを使って「書式」「ツールチップのみ」「グラフ」「スパークライン」「テーブル」「合計」を表示させることができますので、今回はその内容について書いていきます。記事を読む【VBA】乱数を発生させる、重複させない方法などExcelを扱っていると用途によって乱数を発生させたいことがあるかと思います。その場合はRnd関数を用いることで規則性のないランダムな数値を発生させることが出来ますので、今回はその内容と参考として乱数を重複させない方法について書いていきます。記事を読む【VBA】枠線の色や表示/非表示を設定するExcelシートの枠線の色を変えたり、非表示にしたいことも状況によっては発生しますよね。VBAでもDisplayGridLines、GridlineColor、GridlineColorIndexプロパティを使用することで処理することが出来ますので、今回はその方法について書いていきたいと思います。記事を読む【VBA】ハイパーリンクを作成/削除するExcelで良く使う機能の一つにハイパーリンクがありますが、そのリンクの作成や削除をVBAのHyperlinkオブジェクト/Addメソッド/Deleteメソッドを使用することで行うことができます。今回はその内容について書いていきます。記事を読む【VBA】セルに網掛け(パターン)を設定するExcelは標準で多彩な網掛けパターンを持っていますので、用途に応じて使用する機会も多々あるかと思います。この網掛けはVBAでもPatternプロパティ、xlPatternクラス定数を使用することで設定できますので、今回はその内容について書いていきたいと思います。※当サイトはロリポップ!のハイスピードプランです。はじめまして!Ryoと申します。中小企業製造メーカー勤務で主に生産技術業務に勤しむ一方、社内PC管理やVBAで業務効率化を図る日々を送っていますので、これまでの経験や実践してきた内容をここで発信していきたいと考えています。困った時の一助になれるようなブログ作りを目指します。「自恃ろぐ」はAmazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。