#13 【Excel VBA入門】~行と列の挿入 指定した方向に行列挿入する xlShiftToRight~

ExcelVBA

プログラミング入門としてVBAを勉強したい方へ

スポンサーリンク

Excel VBAはプログラミング初心者におススメな言語です。

このページがおススメな方

このページは ・プログラミングを全くやったことがない ・プログラミングをやりたいけど何からやればいいか分からない ・仕事の業務を効率化したい といった方向けの記事です。 Excel VBAを書くための準備から、基本的なコーディング、応用レベルの使い方をなるべく噛み砕いて全くの初心者でも少しずつステップアップできる内容になっています。

VBAをおススメする理由

特に今後プログラミングを覚えていきたいという方にVBAは非常におすすめです。 その理由は ・開発環境を構築する必要がない ・コードが癖はあるけどシンプル ・プログラミングをするためのエディターは専門のものが用意されている ・エクセルという視覚的に表示されるものが多いので、達成感をすぐに味わえる という観点から僕はVBAをお勧めしています。 プログラミングという言語は沢山あって、あっちはこれが得意でこっちはこれが得意でといった感じに比較することは多いかと思いますが、コードが シンプル! かんたん! 分かりやすい! 結果をすぐ得られる! と、いいことずくめなのでプログラミング比較で迷っている方はとりあえずまずは、の感覚でいいのでVBAをやってみてください。 (その代わり遅いんですけどね…)

VBAのメリット・デメリット

ただVBAにはできることへの限度、速度の面から見て他と劣ることがどうしてもあるので 普段のエクセルの業務を効率化したいという方は本格的に勉強していただき、そうではなくいずれ別のプログラミング言語に挑戦したいという方はプログラミングの基礎部分を固めるという意味で勉強するのがいいかと思います。 プログラミング言語にもそれぞれ難易度があり、 ・C言語javaobjective-cなど学習コストが高く難易度も高いもの ・PHPPythonRubyなど学習コストは中程度だが初心者は大体挫折するもの ・JavaScriptの様なHTML、CSSを知っておかないとできないようなもの と難易度は様々です。 そんな中でExcel VBAは他の言語では表示させるまでに複数行かかるものを1行で書けたり、シンプルなコードでマウス操作やキーボード操作までできるので視覚的にも楽しいし、エラー個所もここがエラーだとすぐ分かる様になっているのでプログラミング初心者でも挫折が少なく覚えられるはずです

エクセルのバージョンと歴史

因みにエクセルにも種類というかバージョンがあり、メジャーなバージョンでは 2003 2007 2010 2013 2016 2019 とありますが、僕はOffice2016を使用していますので、それをベースにお伝えしていきます。

指定した方向へのセル挿入について

今回は指定した方向へのセルの挿入について解説していきます。 指定した方向へのセル挿入とは、その名の通り指定した方向へセルを挿入する方法です。 特に指定しないと自動でパソコンが考えてくれてこれは下へ挿入したほうがいいだろう、これは右へ挿入したほうがいいだろうと考えてくれて勝手に挿入方向を決めてくれます。 この挿入の方向を右にセルを挿入したりすることです。

セルの挿入方向を右に指定してセル挿入する

今回の目標:B2セルにセル挿入して右方向に挿入方向を指定する

ここから実践

1.開発タブのvisual Basic Editorをクリックしましょう (Alt + F11のショートカットでも表示させられます) 開発タブが表示されていない方は【Excel VBA超初心者】~開発環境の準備~を参考にしてください 2.メニューバーの挿入タブをクリックしましょう 3.挿入メニュー内の標準モジュールをクリックしましょう 4.エディターの1行目にSub 右方向へセルを挿入()と入力し、入力が完了したらエンターを押しましょう 5.ではまずは下準備をしていきます。 6.B3セルに「こんばんは」と入力してください ※入力しなくてもいいですが、挿入された事を分かりやすくするためです。 7.C2セルに「こんにちは」と入力してください ※入力しなくてもいいですが、挿入された事を分かりやすくするためです。 8.これで下準備は完了です。 9.2行目に Range(“B2”).Insert shift:=xlShiftToRight と入力してください 10.入力が完了したらエンターキーを押してください 12.入力が完了したらツールバーの再生ボタン「」をクリックしてください 再生ボタンはメニューバーの「挿入」の右斜め下にあります。 (見つけられない場合はショートカットキーのF5キーで実行してください 13.B2セルの右にセルが挿入され、C2セルに入力した「こんにちは」がD2セルに移動していれば成功です! 14.Range().Insert shift:=xlShiftToRightについては以上です!

解説

Excel VBAのshift:=xlShiftToRightとは、指定したセルの右にセルを挿入する命令になります。 ではそれぞれ分解して解説していきます。

shift

このshiftは何かを指定したい時に使われる命令です。 なので命令をしたい時に使う命令というよく分からないものでもあります。 因みに筆者である僕もこのShiftがどういうものであるかはっきりと分かっていません。 ただ、この命令をしたい時に使う命令という認識なので深く考えすぎないことをおススメします。 この記事を書くにあたりしっかり調べようと思ったのですが、なかなかこの「Shift」に言及している記事がなかったので調べる時間がもったいなくてあきらめました。 この様にプログラミングではこういう使われ方をしているけれど、その使い方の意味は?ってなった時に分からないのを飛ばすのもプログラミングをやっていくうえで一つのコツです。 変数のページでもお伝えしましたが「Dim」や「As」について「変数使う時に必要なものです」くらいにしか説明しませんでしたが、今回もそれと同じです。 といった感じに「Shift」についても解説を終わります。 この「Shift」は細々と使うところは出てきますが、頻繁に使うものではないので必要な時に調べれば問題ありません。 変数については以下のページを参考にしてください

:=

この「:=」はShiftが出てくるタイミングでほぼ必ず一緒に使われるのでセットであることを覚えておきましょう。 色々読み方を調べていたのですが、明確な名前はなさそうでほぼすべてのサイトで コロンイコール と呼ばれていました。 なので、当サイトも「コロンイコール」で解説していきます。 このコロンイコールはその名の通り「:」「コロン」と「=」「イコール」を組み合わせたものです。 「:=」こういう記号がある訳ではないので気を付けましょう。 コロンイコールは 「名前付き引数」 と呼ばれるものを呼び出すときに使われる命令で、この名前付き引数というのは AにBのものを適用したいというものになります。 ではもう少し詳しく解説していきます。 が、合わせて引数についても解説していきます。

引数と名前付き引数

引数

何かしらのプログラミングをやったことのある方なら引数という言葉は聞いたことがあるのではないでしょうか。 あまり細かく解説してしまうと混乱してしまうので、本ページではざっくりとだけ解説します。 本格的に引数について知りたい方は別のサイトを参考にされた方がいいかと思います。 引数は呼び出したい定義を作成し、それを別のところで使える様にすることです。 ・・・ 分からないですよね。 例えば、 Sub~EndSubまでのプログラムが2つあったとします。 Sub Aプログラム() ~中略~ End Sub Sub Bプログラム() ~中略~ End Sub Bプログラムで Range(“A1”) = “こんにちは” というプログラムを作ります。 Bプログラムで作った「こんにちは」と表示させるプログラムを、Aプログラムで使える様にするための命令をAプログラムに書きます。 ざっくりですが引数の説明は上記のような感じです。 これだけでは非常に分かりづらいですし、なかなか理解が難しいので今はここは読み飛ばしていただいて大丈夫です。 将来的に自分でプログラムを組むようになり、大量にSub~End Subのプログラムを作ってあっちで呼び出してこっちで呼び出してとする様になったら本格的に勉強すればいいかと思います。 なので、ここで引数をしっかり理解しようとするのは時間の無駄なので先に進むことを強くお勧めします。

名前付き引数

引数で大分混乱してしまったと思いますが、名前付き引数はそこまで複雑ではないので安心してください。 名前付き引数というのはその名の通り、既に名前が付けられている引数のことです。 先に紹介した引数は、 ・自分でプログラムを作って引数にする というものでしたが、 名前付き引数は ・既に作られている引数を呼び出して使用する というものになります。 そして、その 「既に作られている引数を呼び出す」ための命令が「Shift :=」 となるわけです。 そして、呼び出される命令が後述する「xlShiftToRight」です。 名前付き引数はこの様に既に用意されているものを呼び出す命令なので、引数ほど複雑ではありませんね。 この名前付き引数も、ここでしっかり理解しようとするのは時間の無駄なので先に進むことを強くお勧めします。

xlShiftToRight

この「xlshiftToRight」はセルの挿入方向を指定したい時に使われる命令です。 これが呼び出される名前付き引数と今は覚えておいてもらって構いません。 当然挿入したい方向を決める命令は上下左右にあり、 左にセル挿入は「xlShiftToleft」 上にセル挿入は「xlShiftUp」 下にセル挿入は「xlShiftDown」 となります。 (xlShiftUp、xlShiftToLeftはセルの削除の時に使う命令だったかも…) この様に挿入するセルの方向を指定したい時に使うのが「xlShiftToRight」です。

■今回はここまで■

今回のコード一覧

自分でコードを書いてエラーが発生してしまったら、以下のコードと比較してエラーを解消しましょう。
Sub 右方向へセルを挿入() Range(“B2”).Insert shift:=xlShiftToRight End Sub

エラーの場所がわからない

どうしてもエラー箇所が分からないという方がいましたら、2つのテキストの差異を視覚的に教えてくれるWinMergeというソフトがあるので、それを使って上記のコードと自身が書いたコードを比較してみることをお勧めします。 WinMerge
WinMerge - You will see the difference…
WinMergeは、オープンソースのWindows用比較・マージツールです。WinMergeは、フォルダとファイル両方が比較でき、理解しやすく扱いやすいテキスト形式で差異をビジュアルに表現します。

まとめ

このページでは挿入するセルの方向について解説しました。 セルを挿入する方向だけでなく ・引数 ・名前付き引数 と、少し複雑なものもでてきたので混乱してしまったかと思います。 しかしこの引数などについては今今はそこまで深く考えずに、セルを指定する方向があるんだな、と思っていただければ大丈夫です。

コメント