罫線が消えてしまう、特定の文字列を色付けしたい......Excelのお悩みを解決

罫線が消えてしまう、特定の文字列を色付けしたい......Excelのお悩みを解決

  • Schoo PENCIL
  • 更新日:2021/07/22
No image

罫線の「困った!」が生じたら“どのセルの上または下に引いたのか”をまず考える

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

授業最初に取り上げられた質問は「行のタイトルを設定し、複数ページにわたって表示されるようにしたが、2ページ以降行のタイトル範囲の下線が消えてしまう」というもの。田中先生は「実際の画面を見ないと完全にはわからないですが」と前置きしつつ、罫線がセルの上に設定されているのか下に設定されているのかの違いが関係しているのではないかと推察しました。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

罫線はセルに対し上に引くことも下に引くことも可能であり、例えば上図のB列とC列は一見まったく同じように見えますが、実際は2行目と3行目の間に惹かれた罫線がB列の場合はB2セルの下線として、C列の場合はC3セルの上線としてひかれているという違いがあります。そのため、D2セルをコピペするとB列の罫線は消えてしまいますが、C列の罫線はそのまま保持されます。“罫線が消えてしまう”という悩みを持つ方はまず、罫線をどのセルの上、または下に引いたのかを考えてみてください。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

重複しないワードを表から抽出したい場合は「データの取得と変換」が強い味方に

つづいては例となる表付きで送られてきた質問です。りんご、みかん、バナナ……と果物の名前が不規則に記載されている複数の列からなる表。そこからユニークな(重複しない)アイテムを抽出し、1列にまとめたいと相談者は考えているようです。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

これはマクロでもできるが今回はあえて手動でやってみたと田中先生。「これ、意外と便利です」と太鼓判を押します。 そうして提示されたのが以下の表。田中、佐々木、広瀬……など人名が不規則に記入されています。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

ここで使うのが「データ」タブの「データの取得と変換」機能です。世間一般では「Power Query」と呼ばれることの多いこの機能。しかし、先生はあえてExcelに表示されたままの名前で呼んでいるそうです。それは、その名前が機能を把握する意味で重要だから。

先生は名前がランダムに記載された範囲を選択し、「テーブルまたは範囲から」をクリックしました。すると、Power Queryエディターのウィンドウが呼び出されます。そのうち、変換タブに位置する「列のピボット解除」をクリック。すると、以下のように名前がすべて一列に並べられました。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

ここから「ホーム」タブの「列の削除」で不要な属性列を、「行の削除」の「重複の削除」で重複している名前を削除します。あとは「閉じて読み込む」ボタンをクリックし、「データのインポート」ウィンドウで「テーブル」「既存のワークシート」にチェックを入れて「OK」を押せば、以下のとおり、相談者の望んでいた通りの表が表示されました。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

「データの取得と変換」機能の応用性の高さには先生も目を見張ったということです。今後も要注目の機能といえるでしょう。

「セルの中の特定の文字列だけ、色付けしたい」ときの簡単なマクロ

続いて取り上げられたのが「セルの中の特定の文字列だけ、色付けしたい」という受講生の相談。以下のようにDM・DMM・DDMといった文字列が含まれた文章がある場合、そのうち、「DM」の部分だけ一気に色を変えたいと相談者は考えているようです。ここで用いられるのが「マクロ」です。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

特定の文字列の色を変える方法は簡単。色を変えたい部分を選択して「ホーム」タブの「フォントの色」ボタンをクリックするだけです。では、例えば以下のセルの「AB」の色だけを自動で塗り替えたいという場合はどうすればよいのでしょうか?

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

そこで田中先生が作成したのが以下のマクロコードです。

Option Explicit

Sub Macro1()  Dim Pos As Long, S As Long  Do    Pos = InStr(Pos +1, ActiveCell, Range(“B1”))    If Pos = 0 Then Exit Do     ActiveCell.Characters(Pos, Len(Range(“B1”))).Font.Color = 25! LoopEnd Sub

B1セルに「AB」と色を変えたい文字列名を入力し、上記のコードを実行した結果が以下の画像。見事に「AB」だけ色が変更されていますね。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

「もしも『AB』は変えたい、でも『ABC』は変えたくないという場合は難易度が一気に変わります」と田中先生。その場合は「正規表現」という手法に頼ることになりそうですが、まずは今回のやり方を押さえてからネクストステップに進みましょう!

「If Then Else」と「Select Case」の違いは「〇〇」

マクロの話題はさらに続きます。「VBAの分岐で存在する『if』と『case』の違いについて教えてほしい」という相談者。田中先生はこの質問に対し、まず「『case』じゃないです」と指摘。正式名称はそれぞれ『If Then Else』と『Select Case』です。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

「VBAの条件分岐にはこの2つしかありません」と先生は語ります。条件分岐とは「条件によって処理を分岐する仕組み」のこと。そして、条件の分岐には以下の2つのパターンがあると田中先生。

1.Aなのか、そうでないか2.Aなのか、Bなのか、Cなのか、Dなのか……

1はAかそうでないかの2値に分かれるのに対し、2はより細かく複数の条件に分岐しています。そして、1つめのパターンで使われるのが「If Then Else」、2のパターンで使われるのが「Select Case」なのです。

「If Then Else」にも「elseif」という3つ目のパターンを指定する方法は存在しますが、「上級者で『elseif』を使う人は一人もいません」と田中先生。「Select Case」を知っていれば、「elseif」を使う理由はないと断言できるのです。

また、例えば以下のように「A、B、C、A、B、C……」と一行目に記載されたワークシートの2行目に、「Aならば1」「Bならば2」「Cならば3」と対応させた数字を入力したいとします。この場合に使えるのが「SWITCH関数」。「=SWITCH(セル名,”A”,1,”B”,2,”C”,3)」と入力するだけで、Excelの機能を使って条件分岐を行わせることも可能です。

No image

△【画像クリックでSchoo授業動画へ】(会員登録で1時間無料視聴できます)

このように関数が追加され、できることが続々と増えているExcel。その世界をどんどん追及して“Excelマスター”を目指しましょう!

文=宮田文机

今回取り上げたSchooの授業はこちら!

『田中亨先生がみんなの悩みを華麗に解決する「今月のExcelテクニック」 第27回Excelのマクロ』

No image

大人たちがずっと学び続ける 生放送コミュニティ「Schoo(スクー)」とは?

365日開講!Schooの生放送カレンダー

この記事をお届けした
グノシーの最新ニュース情報を、

でも最新ニュース情報をお届けしています。
  • このエントリーをはてなブックマークに追加