日本語VBAで選択範囲中の 奇数列のみを範囲選択しよう

Pocket

日本語VBAで選択範囲中の 奇数列のみを範囲選択しよう
日本語VBAで選択範囲中の奇数列のみを範囲選択しよう

序文

はい。

皆さんコロナ・ウィルスに感染しないよう注意されていますよね。

私は、細菌性の肺炎(新型肺炎ではないそうです)にかかり、けっこうつらい毎日を送っています。

病気にはならないよう、皆さん細心の注意を払ってご自愛ください。

さて、エクセルVBAで、少々病的(?)なコードを書いて、選択範囲中の奇数列や偶数行を選択することができます。

しかし、日本語VBAでは、1行程度のコードで、選択範囲中の奇数列や偶数行を選択することができます。

これは、日本語VBAが「ライブラリとしての機能」も持っているからなのですが、せっかくある機能ですので、使い方を一度しておくのも手だと思います。

それでは、行ってみましょう!

プログラム作成

完成形

プログラムの完成形

日本語VBAプログラムの完成形
日本語VBAプログラムの完成形

今回の日本語VBAのプログラムの完成形は、上図のようになります。

1行で済んでいますね。

完成形のコードは以下にありますので、コピペされてもかまいません。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具.hngハンガリアンセル("A1:G30").sentaku選択.sentaku選択範囲(選択範囲パターン奇数列).sentaku選択

End Sub

プログラムの実行結果

日本語VBAプログラムの実行結果
日本語VBAプログラムの実行結果

完成形のコードを実行すると、上図のような実行結果になります。

オフセットのベースが0始まりのため、奇数は1個ずれます。

オフセットが、0+1=1 と1として計算されます。

オフセットは0から始まりますので、エクセル画面上では0オフセット列目は1列目、0+1オフセット列目は2列目となります。

画面表示上で奇数列にしたい場合は、「選択範囲パターン偶数列」を選択するようにしてください。

プログラムの枠を作成

さて、プログラムを最初から組んでいきます。

最初に、プログラムを囲む枠(サブルーチン)を作成します。

プログラムの枠
プログラムの枠

以下のコードをコピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
End Sub

「g_道具」から始める

次に、ほとんどの日本語VBAの起点である「g_道具」を「g_」と入力してからの補完で取得します。

「g_道具」を補完する。
「g_道具」を補完する。

上図のように、「g_」と入力してから、CTRL+スペースを押下してください。

すると補完候補が表示されますので、「g_道具」を選択し、TABキーを押下して補完を確定させます。

ここまでのコードは、以下のようになります。コピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具

End Sub

ハンガリアンセルを選択し”A1:G30″の範囲を設定する

今回は、「セル」ではなく、「ハンガリアンセル」を使用するようにします。

「ハンガリアン」に関しては、以下のページを参照してください。

「ハンガリアンセル」を使用すると、半角モードのまま、補完によってどんどん補完候補を選択していくだけで、コードが完成していきますので、意外と便利です。

「hng」まで入力し、「hngハンガリアンセル」補完候補を選択し、TABキーを押下して補完を確定する。
「hng」まで入力し、「hngハンガリアンセル」補完候補を選択し、TABキーを押下して補完を確定する。

上図のように、「g_道具」の後に、「.(ピリオド)」を入力し、補完候補を表示させます。

さらに「hng」と入力し、補完候補を絞り込みます。

補完候補のリストの中から「hngハンガリアンセル」を選択肢、TABキーを押下して補完を確定します。

ここまでのコードは以下の通りです。コピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具.hngハンガリアンセル

End Sub

“A1:G30″を選択

次に「ハンガリアンセル」のセル範囲を、”A1:G30″にします。

ハンガリアンセルに"A1:G30"の範囲を選択する
ハンガリアンセルに”A1:G30″の範囲を選択する

「hngハンガリアンセル」の後に左丸括弧を入力し”A1:G30″とセル範囲を入力して、最後に右丸括弧を入力します。

これで、「hngハンガリアンセル」が”A1:G30″を指していることになります。

「sentaku」まで入力し、「sentaku選択」補完候補を選択し、TABキーを押下して補完を確定させる。
「sentaku」まで入力し、「sentaku選択」補完候補を選択し、TABキーを押下して補完を確定させる。

次に、”A1:G30″を選択しましょう。

右丸括弧の後に、「.(ピリオド)」を入力し、「sentaku」とハンガリアン用のキーワードを入力し、補完候補を表示して、ハンガリアンで絞り混みます。

「sentaku選択」を選択し、TABキーを押下して補完を確定させます。

ここまでのコードは以下のようになります。コピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具.hngハンガリアンセル("A1:G30").sentaku選択

End Sub

選択範囲中の奇数列を選択範囲にする

“A1:G30″を範囲選択できましたので、その選択範囲をプロパティ(変数)として取得します。

「sentaku」まで入力し、「sentaku選択範囲」補完候補を選択し、TABキーを押下して補完を確定させる。
「sentaku」まで入力し、「sentaku選択範囲」補完候補を選択し、TABキーを押下して補完を確定させる。

「sentaku選択」の後に「.(ピリオド)」を入力し補完候補を表示させます。

補完候補の中から、さらにハンガリアンで絞り混みます。「sentaku」というハンガリアンコードを入力してください。

その後「sentaku選択範囲」を選択し、TABキーを押下して補完を確定します。

ここまでのコードは以下の通りです。コピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具.hngハンガリアンセル("A1:G30").sentaku選択

End Sub

奇数列を選択

“A1:G30″の範囲をプロパティ(変数)として取得できましたので、今度は選択範囲の中から奇数列のみを選択し直します。

「(」を押下すると選択肢が出てくるので、「選択範囲パターン奇数列」を選択する。
「(」を押下すると選択肢が出てくるので、「選択範囲パターン奇数列」を選択する。

「sentaku選択範囲」プロパティの後に左丸括弧を入力します。

すると補完候補が表示されますので、「選択範囲パターン奇数列」を選択します。

(「選択範囲パターン奇数列」はエクセル上では、偶数列を選択します。エクセル上で奇数列を選択した場合は、ここで「選択範囲パターン偶数列」を選択してきださい。)

最後にTABキーを押下して補完を確定します。

その後、右丸括弧を入力します。

ここまでのコードは以下のようになります。コピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具.hngハンガリアンセル("A1:G30").sentaku選択.sentaku選択範囲(選択範囲パターン奇数列) 

End Sub
「sentaku」まで入力し、「sentaku選択」補完候補を選択し、TABキーを押下して補完を確定させる。
「sentaku」まで入力し、「sentaku選択」補完候補を選択し、TABキーを押下して補完を確定させる。

最後に奇数列を選択します。

「.(ピリオド)」を入力して、補完候補を表示させます。

補完候補の中から、「sentaku」とハンガリアンコードで絞り込み、「sentaku選択」を選択し、TABキーを押下して補完を確定します。

ここまでのコードは以下の通りです。コピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具.hngハンガリアンセル("A1:G30").sentaku選択.sentaku選択範囲(選択範囲パターン奇数列).sentaku選択

End Sub

プログラムの完成形

以上までで、プログラムが完成しました。

完成形は下図を参照してください。

日本語VBAのプログラムの完成形
日本語VBAのプログラムの完成形

また、完成形のプログラムのコードは以下のようになります。コピペされてください。

Public Sub 奇数列のみ範囲選択01()
    
    g_道具.hngハンガリアンセル("A1:G30").sentaku選択.sentaku選択範囲(選択範囲パターン奇数列).sentaku選択

End Sub

日本語VBAを実行した実行結果

「開発」タブから「マクロ」ボタンをクリックする

それでは、完成形の日本語VBAを実行してみましょう。

まずはエクセル上でリボンの「開発」タブを開く必要があります。

詳しくは以下のページを参照してください。

「開発」タブ→「マクロ」ボタンをクリック
「開発」タブ→「マクロ」ボタンをクリック

「開発」タブを開き、「マクロ」ボタンをクリックします。

「マクロ」ダイアログで、サブルーチン(プログラム)を「実行」

「マクロ」ダイアログが開きました。

今回サブルーチン名「奇数列のみ範囲選択01」を選択し、「実行」ボタンをクリックします。

「マクロ」ダイアログで、サブルーチン(プログラム)を選択し、「実行」ボタンをクリック。
「マクロ」ダイアログで、サブルーチン(プログラム)を選択し、「実行」ボタンをクリック。

実行結果

今回の日本語VBAの実行結果です。

実行結果
実行結果

エクセル画面上では、偶数列が選択されています。

エクセル画面上で奇数列にしたい場合は、「選択範囲パターン偶数列」を使用するようにしてください。

まとめ

皆さん大変お疲れ様でした。

ここまで読んで頂いて誠にありがとうございました。

今日の学びを以下にまとめます。

  • ハンガリアンセルは、ややコードが長いが、半角入力モードのまま補完候補を絞り込んだり、最初のローマ字の部分だけ入力し、CTRL+スペースで補完したりでる
  • 日本語VBAのコードで「奇数列」を選択するとエクセル上では「偶数列」が選択される。(ここはバグでして、次バージョンで修正する予定です)
  • 日本語VBAで奇数列を選択するには、最低1行のコードですむ場合もある。

日本語VBAは実際のところ、VBAの関数を集めた「ライブラリ集」です。

うまく使うと、実際に書くコードを短くすることも可能です。

皆さんも、よく工夫されて応用されてくださいね。

それではー またー (^_^)/

The following two tabs change content below.
KaBA@フリーランス修行中

KaBA@フリーランス修行中

こんにちは!IT業界で勤めて17年くらい務めています。プログラミング大好きやろーです。 自分も独学でC言語を覚えIT会社に就職しました。その後紆余曲折を経て、VB6.0、VBA、Perl、C#、HTML、CSS、JavaScript、PHPなどを覚えていきました。全部C言語の独学時の経験がベースとなって、学習曲線が良いカーブを描いていました。 情報工学科を出ていなくても、独学でエンジニアは育つことができると思います! このブログで皆さんがプログラミングに興味を持たれるのを心待ちにしています! 頑張って覚えられてください!よろしくお願いします。 趣味は読書で、小宮一慶さんや松下幸之助さんなど著名人の本を読んでいる他、赤川次郎さんの三毛猫ホームズシリーズ司馬遼太郎吉川英治さんの三国志などが好きです。