mr.Bones 2023/06/02 07:01

「カスタムクリップボード」(ExcelのカスタムUI リボン) のリリース

ども、mr.Bonesです。

最近私はExcel職人の日々を送っております。

あるシートにまとめた表を別シートにさらに情報を付加したり、間引いたりして帳票化するということが多々あります。

こういう場合に面倒くさいのが、行と列を入れ替えて同一シート、もしくは別シートに数式や参照元セルを保持したまま転記する必要があるケースです。

泣く泣く個別セルの数式を手修正したりしていませんか?
こういうケースで自動的に元の参照元セルや数式を保持したまま転機出来るExcelのカスタムUI リボンを作成致しましたので、リリースします。

今回もシェアウェアです。
体験版についてはフォロワー様も無料でご利用頂けます。

【カスタムクリップボード】(ExcelカスタムUI リボン)

「Excelカスタム UI リボン」とは何ぞや?という方も多いと思います。Excelで自動で処理させるマクロ(VBA)はこんなマニアックなブログを見に来る皆さんならご存じですよね?通常のマクロはマクロの定義されたExcelファイルでのみ利用可能です。これを恒久的にExcel編集画面上に追加のリボンタブを表示して、空白の新規Excelファイルだろうが、自分で過去に作成したExcelだろうが用意したVBAを利用出来るようにしたのが、「Excelカスタム UI リボン」になります。

【インストール方法】

1.同封のInstall.VBSを実行すると「CustomContextMenuアドインをインストールして宜しいですか?」と聞かれるので「はい」を選択するとExcelアドインとしてインストールされ、「カスタムクリップボード」(Excelカスタム UI リボン)が利用出来るようになります。

【アンインストール方法】

1.同封のUnInstall.VBSを実行すると「CustomContextMenuアドインをアンインストールして宜しいですか?」と聞かれるので「はい」を選択するとインストール済のExcelアドインが削除されます。

①縦横変換

1.同一シートの任意の範囲を選択し、リボンのカスタムタブ上の「縦横変換」を押すと範囲のセルの値がコピーされます。
2.同一シートの任意の場所で貼り付けを行うと行と列が入れ替わった状態で値や数式が張り付きます。

Excelの標準機能にも行列変換という機能がありますがこの機能との違いは、標準機能の行列変換は貼り付けた位置を元に数式が相対座標に変更されるのに対して、本機能は元座標そのままで行列変換して貼り付きます。

例)
A1=1
B1=A1+1
C1=B1+1
と値や数式が埋め込まれていた場合にB4セルに貼り付けると仮定します。

(a)Excel標準機能の行列変換で貼り付けると
B4=1
B5=B4+1
B6=B5+1
と貼付位置から相対座標で値や数式が貼り付きます。

(b)本アドインの縦横変換を押した後で貼り付けると
B4=1
B5=A1+1
B6=B1+1
と元の値や数式をそのまま貼り付けます。

どっちがいいかはケースバイケースだと思いますので、用途に応じて使い分けて下さい。

②別シート参照貼付

1.あるシートの任意の範囲を選択し、リボンのカスタムタブ上の「別シート参照貼付」を押すと範囲のセルの値がコピーされます。
2.別シートの任意の場所で貼付を行うとあるシートの値や数式がそのままで参照元のシート名を付与して貼り付けます。

例)
Sheet1
A1=1
B1=A1+1
C1=A1+B1
⇒Sheet2のB3を選択して貼り付け
B3=1
C3=Sheet1!A1+1
D3=Sheet1!A1+Sheet1!B1

となります。

③別シート縦横変換

1.あるシートの任意の範囲を選択し、リボンのカスタムタブ上の「シート縦横変換」を押すと範囲のセルの値がコピーされます。
2.別シートの任意の場所で貼付を行うとあるシートの値や数式が行列入れ替わった状態で参照元のシート名を付与して貼り付きます。

例)
Sheet1
A1=1
B1=A1+1
C1=A1+B1
⇒Sheet2のB3を選択して貼り付け
B3=1
B4=Sheet1!A1+1
B5=Sheet1!A1+Sheet1!B1

となります。

④外部リンク⇒内部リンク置換

1.任意のシート(アクティブシート)でリボンのカスタムタブ上の「外部リンク⇒内部リンク置換」を押すとアクティブシートの外部リンクがすべて内部リンクに置換されます。

別ブックの数式が埋め込まれたシートを編集対象のブックに移動やコピーで貼り付けると別ブックの数式が外部参照として元ファイルの参照のまま貼り付けられたりします。

例)
C1='D:\Backup[hoge.xlsx]Sheet2'!A1+'D:\Backup[hoge.xlsx]Sheet2'!B1

C1=Sheet2!A1+Sheet2!B1
に置換します。

ただし、外部リンクが「='\\192.xxx.1.1[hoge.xlsm]Sheet2'!B1」で内部リンクに変換した結果「='Sheet2'!B1」に変換し、残念ながら任意のシート(アクティブシート)にSheet2が存在しなかった場合は内部リンクとして成立しません。なので数式の先頭に「'」(シングルコーテーション)を付与して数式としては潰した状態で変換する仕様にしています。

例)
C1='\\192.xxx.1.1[hoge.xlsm]Sheet2!B1

C1'=Sheet2!B1

宜しければ、使ってみて下さい。

それでは。

フォロワー以上限定無料

「カスタムクリップボード」(ExcelのカスタムUI リボン) 体験版

無料

【 レギュラー 】プラン以上限定 支援額:500円

「カスタムクリップボード」(ExcelのカスタムUI リボン) 

このバックナンバーを購入すると、このプランの2023/06に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索