VBA

VBA for Excel



McrTool Supplement-1
[特殊な貼り付け]-[マクロ貼り付け]

マクロによる、特殊な場合のコピー&ペーストを行います。
分割した範囲の貼り付け、[数式そのまま]や[参照式]の貼り付け、 [罫線以外書式]や[罫線のみ]の貼り付けなどが行えます。

[数式そのまま]の貼付けでは、入力されている数式をそのまま貼り付けます。 これを利用すれば、部分的に相対参照が含まれていても、 そのまま絶対参照のように貼り付けることができます。
[参照式]の貼付けでは、コピー元への参照式を貼り付けます。
[マクロ貼り付け]ダイアログボックス
-[貼り付け先]
-[選択] : 直下のボックスで、貼付先の左上セルを指定します。
ここで複数のセルを指定すると、連続的に貼り付けられます。
同一ブック内であれば、別のシートへの貼り付けも可能です。
-[下方↓] : コピー元の範囲のすぐ下側に貼り付けます。
-[右側→] : コピー元の範囲のすぐ右側に貼り付けます。
-[貼り付け方]
-[上書き] : 貼付先の範囲に上書きします。
-[挿入↓] : 貼付先の範囲を挿入(下へシフト)します。 コピー元の範囲が分割されている場合、コピー元全体を含む矩形の領域を挿入します。
-[挿入→] : 貼付先の範囲を挿入(右へシフト)します。 コピー元の範囲が分割されている場合、コピー元全体を含む矩形の領域を挿入します。
-[行列入替え] : 行列を入れ替えます。罫線の書式も入れ替えるので、 組み込みの[形式を選択して貼り付け]機能のように表の書式が壊れません。

[使用方法]

  1. 通常のコピー&ペーストと異なり、コピー元を選択した状態で右クリックします。
  2. [特殊な貼り付け]-[マクロ貼り付け]コマンドを選択します。
  3. [貼付け先][貼付け方]を指定し、[OK]をクリックします。
    [貼付け先][選択]する場合は、先頭セルの貼付け先範囲を指定します。)
  4. 分割範囲が連続的に貼り付けられます。
注1)
別のブックへの貼り付けは出来ません。同じブック内に一時的に貼り付けてから移動して下さい。
注2)
複数シートグループでの作業では、各シート内の指定アドレスへ貼り付けます。
別のシートへまとめて貼り付けたい場合は、[3Dデータの組替え貼付け]を利用して下さい。
注3)
行列入替え等の特殊な貼付けに対応するため、セルを一つずつコピーしています。 そのためデータ量が多いと時間がかかることがあります。
[特殊な貼り付け]-[複数シートの参照貼付け]

複数シートグループの特定セルに対して串刺しで参照をしたり、 逆に特定範囲への参照式を串刺しで貼り付けます。

[複数シートの参照貼付け]
-[選択シート --> 指定範囲に貼付]
複数シートグループの特定セルへの参照式を、 指定範囲に並べて貼り付けます。
    [使用方法]
  1. 複数シートグループを選択した状態で起動します。
  2. ダイアログボックスに貼付先の範囲を指定します。
  3. 参照元各シートのアクティブセルへの参照式が、 指定した貼付先範囲の各セルへ貼り付けられます。
注)
参照元となる複数シートグループのシート数が貼付先のセル数になります。 指定範囲の各セルに貼り付ける順番は、タブオーダーに従います。
-[選択セル --> 指定シート以降に貼付]
選択された範囲の各セルへの参照式を、 複数シートグループの特定セルに貼り付けます。
    [使用方法]
  1. 参照元の範囲を選択した状態で起動します。
  2. ダイアログボックスに、貼付先となる複数シートグループの 先頭シート(の貼付先セル)を指定します。
  3. 貼付先のシートグループを確認するダイアログボックスが 表示されるので、問題がなければ[OK]をクリックします。
  4. 参照元範囲の各セルへの参照式が、 指定した先頭シート以降(の指定セル)に貼り付けられます。
注)
参照元となる最初の選択範囲のセル数が貼付先のシート数になります。 参照元の各セルを参照する順番は、タブオーダーに従います。
注1)
別のブックへの貼り付けは出来ません。同じブック内に一時的に貼り付けてから移動して下さい。
注2)
「タブオーダー」とは、選択範囲を[Tab]キーで移動するときの順番を指します。
[特殊な貼り付け]-[3Dデータの組替え貼付け]

行・列・シートの3次元データの軸を入替えて貼り付けます。
[値]、[数式そのまま]、[参照式]のオプションが選べます。 (これらのオプションについては、[マクロ貼り付け]参照)

[Convert 3D Data]ダイアログボックス
-[X] : 各シートの行方向を表す軸
-[Y] : 各シートの列方向を表す軸
-[Z] : シートの方向を表す軸
[X(行)]、[Y(列)]、[Z(シート)]の各軸を、 どのように入れ替えるかを指定します。

[使用方法]

  1. 複数シートグループのコピー元範囲を選択した状態で右クリックします。
  2. [特殊な貼り付け]-[3Dデータの組替え貼付け]コマンドを選択します。
  3. [X(行)]、[Y(列)]、[Z(シート)]の組み替え方を指定し、[OK]をクリックします。
  4. コピー元範囲のデータを読み込んだ後、貼付先を指定するダイアログボックスが表示されます。
  5. 貼付先となる複数シートグループの、先頭シート左上セル ("貼付先範囲の左上セル"であって、必ずしも"A1セル"を指すのではありません)を指定します。
  6. 貼付先のシートグループを確認するダイアログボックスが表示されるので、 問題がなければ[OK]をクリックします。
  7. 指定した先頭シート以降に、軸を組み替えたデータが貼り付けられます。
注1)
別のブックへの貼り付けは出来ません。同じブック内に一時的に貼り付けてから移動して下さい。
注2)
全く軸を入れ替えなければ、[数式そのまま]や[参照式]でのコピーを行うことになります。
[マクロツール]-[選択領域の移動]

選択領域を移動します(入力内容は移動しません)。

[実行例]

  1. こんな絵を描いてみます。
  2. 色のついたセルを選択します。
    ([マクロツール]-[セルの選択]-[書式]-[背景色]コマンドが便利)
  3. [マクロツール]-[選択領域の移動]コマンドを選択します。
  4. [Up]ボタンで選択領域を上に移動し、 [X]ボタンで[Offset]ダイアログボックスを閉じます。

  5. 別の色をつけて、できあがり。

[マクロツール]-[セル・値の結合]

選択範囲のセルと値を結合します。 通常のセルの結合では先頭セル以外の値は消えてしまいますが、 このマクロでは全てのセルの値が結合されて残ります。 ただし数式は結果の値が結合され、数式自体は残りません。

行方向のデータはカンマ(,)、列方向のデータは改行(chr(10)=vbLf)で区切られます。 (通常、セル内の「改行」はAlt+Enterで入力できます)

[実行例]

  1. 結合する範囲を選択します。
  2. [マクロツール]-[セル・値の結合]-[セル・値の結合]コマンドを選択します。
  3. セルと値が結合されます。

  4. [マクロツール]-[セル・値の結合]-[セル・値の結合解除]コマンドで元の状態に戻ります。
[マクロツール]-[セルの選択]-[検索・一括]

セルを検索し、検索結果を新規シートに一覧表示します。 検索対象はアクティブブックで選択されているワークシート(複数選択可)です。

[Search Keyword]ダイアログボックス
-[キーワード] : テキストボックスにキーワードを指定します。検索対象はセルの値です。
-[完全に同一なセル] : チェックすると、キーワードと検索セルの内容が完全に一致するセルを、 チェックしないとキーワードが含まれるセルを検索します。
-[検索対象] : 検索する対象を指定します。
-[値] : セルの値を検索します。
-[数式] : セルに入力されている数式を検索します。
注)
「セルの値」とは、[値の貼り付け]コマンドで取得される値(Valueプロパティ)であり、 実際の表示内容(Textプロパティ)とは必ずしも一致しません。
[マクロツール]-[セルへの入力]-[連続データ]

連続データを作成します。 組み込みの「フィル」-「連続データの作成」と違い、選択領域が分割されていても使用可能です。

[Formula Number]ダイアログボックス
-[初期値] : 初期値。先頭セルへ入力する値。
-[増分] : 増分、変化量。
-[方向] : 優先する方向。
[マクロツール]-[セルの書式設定]-[数値]

数値の書式を設定します。 ここで書式を設定しても、セルの値そのものは変更を受けないため、 参照先の数式などに影響は与えません。

[数値の書式設定]ダイアログボックス
-[正値] : 正値の書式を指定します。(例;0、#,##0)
-[単位] : 単位を併記したい場合に指定します。(例;[ton]、円)
-[負値] : チェックを入れると、負値の書式を指定することができます。(例;-0、-#,##0)
-[赤色表示] : 負値を赤色で表示する場合にチェックします。
-[0値] : チェックを入れると、0値の書式を指定することができます。 空白にしたままチェックを入れると、0値が空白として表示されます。(例;-)
-[単位表示] : 0値にも単位を表示する場合にチェックします。
-[テキスト] : チェックを入れると、文字列の書式を指定することができます。(例;***)
注)
Excel組み込みの[セルの書式設定]-[表示形式]-[数値]で書式設定をすると数値の後に半角スペースが入りますが、 このマクロでは特に設定しない限りスペースは入りません。 標準書式の数値と揃えるための作者の都合です。
[マクロツール]-[セルの変換]-[文字種別(全角半角の変換)]

文字種別に全角・半角を設定します。 ボタンの沈んだ文字種は全角に、それ以外は半角に変換します。

[Convert Wide/Narrow]ダイアログボックス
-[123456] : 数字の全角/半角を設定します。
-[ABCabc] : アルファベットの全角/半角を設定します。
-[アイウエオ] : カタカナの全角/半角を設定します。
-その他 : 各ボタンに表示された文字種の全角/半角を設定します。
-[Space] : スペースの全角/半角を設定します。
-[ALL] : チェックを入れると、全ての文字種の全角/半角を設定できます。
注1)
クォーテーション「“”‘’`´」←→「"'`」の変換は非可逆です。
(「“”‘’`´(全角)」→半角変換→「""''``(半角)」→全角変換→「””’’``(全角)」)
注2)
デフォルトではカタカナ・句読点・〜が全角、他の文字種が半角に設定されています。
[マクロツール]-[セルの変換]-[桁数固定数値文字列]

数値データを、桁数を固定した数値の文字列に変換します。足りない桁は0で埋められます。

[桁数固定文字列の設定]ダイアログボックス
-[桁数の設定] : 固定する桁数を指定します。
-[<-左詰め] : 数値を左詰めで文字列に変換します。桁が足りない場合は右側に0が追加されます。 文字数が過剰な場合は、指定した桁数で切り捨てられます。
例えば、4桁で左詰めなら「12」→「1200」、「12345」→「1234」に変換します。
-[->右詰め] : 数値を右詰めで文字列に変換します。桁が足りない場合は左側に0が追加されます。 文字数が過剰な場合は、切捨ては行わず単に文字列に変換されます。
例えば、4桁で右詰めなら「12」→「0012」、「12345」→「12345」に変換します。
注)
数値として認識できないデータはスキップします。


Program Top