Excelで「Enterは下に、Tabは右に移動する」だけではない

Excelのワークシート上でEnterキーを押したときの移動方向については、メニューのファイル - オプション - 詳細設定 の「Enterキーを押したら、セルを移動する」で設定できます。
初期設定では、Excelのワークシート上でEnterキーを押すと下のセルに移動します。
Tabキーを押すと右のセルに移動します。
ただ、これだけならば矢印キーと変わりません。実は次のような動きをします。Excel2013で確認しました。 (さらに…)

Excelで印刷時に文字がはみ出さないようにする方法

Excelで「折り返して全体を表示する」を適用している場合、画面上ではセルに収まっている文字が印刷するとはみ出して印字されないというケースがあります。
環境によるのかもしれませんが、これは困ります。ページ設定で縮小するとダメなようです。 (さらに…)

Excelのワークシートの最下行と最右列を取得

Excelのマクロでデータがセットされている最も下の行を求める場面はよくあります。
ワークシートにA1セルを起点(左上)とする一般的な表がある場合、
Cells(Rows.Count, 1).End(xlUp).Row
とすることで取得できます。
Cells(Rows.Count, 1)はワークシートのA列の最も下のセルを表します。Excel2013ならば1048576になります。
End(xlUp)はCtrlを押しながら上向き矢印を押したのと同じ効果があります。つまり最も下のセルから上に向かってデータがセットされているセルを探します。
Rowで行番号を表します。
これならば万が一、表の左端に空のセルがあっても求められます。
最も右の列を求めるのも同様です。

まとめると次のようになります。

最も下の行番号
Cells(Rows.Count, 1).End(xlUp).Row

最も右の列番号
Cells(1, Columns.Count).End(xlToLeft).Column

なお範囲を取得するにはCurrentRegionを使う方法もあります。

Excelを表計算ソフトとして使う

Excelを表計算以外に使用するケースは多いです。「Excel方眼紙」などはその最たるものです。
しかしExcelは表計算ソフトとして使うときに最大の効果を発揮します。
そこで表計算ソフトとして使うための基本中の基本を考えたいと思います。
Excelのバージョンに関わらず使え、LibreOfficeなど類似ソフトにも応用できるはずです。 (さらに…)

「エンジニアが1時間未満で解くべき五つの問題」をVBAで解く

今年、流行った「五つの問題」を今頃、知りました。
色々な言語での解答が発表されていますが、おそらく誰もやらないであろう、VBAで挑戦してみました。
私がVBAの最大の弱点だと思うのが配列。ところがこの「五つの問題」はどれも配列を使わないと解けません。これに苦戦しました。 (さらに…)

VBAで順列

VBAで配列を与えると全ての順列を返すユーザー定義関数を紹介します。
JavaScriptの配列関連メソッドをVBAのユーザー定義関数に | You Look Too Cool
で紹介したユーザー定義関数のうち「splice」「push」「concat」が必要です。 (さらに…)

マイナンバー(個人番号)の正誤を確認するユーザー定義関数

Excelでマイナンバー(個人番号)の正誤を確認するユーザー定義関数を作りました。

二つの関数があります。
一つは「kensasuji_kojin」で個人番号12桁の左から11桁を与えると検査数字(チェックデジット)を返します。
もう一つがメインで「is_kojin_bango」で個人番号を与えると先頭11桁から求まる検査数字と末尾1桁の数字を比較し合致すればTrueを返します。12ケタのチェックもします。
例えばA1セルに個人番号を入力し、B1セルに「=is_kojin_bango(A1)」と入力します。
使用に関しては自己責任でお願いします。 (さらに…)

全てのシートの名前を配列で取得するマクロ

開いているExcelブックのすべてのシートの名前を配列で取得するマクロです。
これ自体は意味がないですが、他のマクロに組み込んで使えると思います。
Excel2013で確認しました。 (さらに…)

Excel2013のピボットテーブルのラベル

Excel2013でピボットテーブルを使うと以前のバージョンではフィールド名が表示されていたところが「行ラベル」「列ラベル」となってしまいます。

ピボットテーブルを使うとメニューに「ピボットテーブルツール」が現れます。
これの「デザイン」を使うと見た目を変更することができます。
メニューの デザイン - レイアウト - レポートのレイアウト で「表形式で表示」を選択すると以前のように「行ラベル」「列ラベル」でなくフィールド名が表示されます。

デフォルトでは「コンパクト形式で表示」が選択されているようです。
実際は小計の行が表示されたりしてコンパクトではないのですが。

外字の有無をチェックするユーザー定義関数

もう2015年だというのにWindowsで「外字」を使ったデータに遭遇しました。
標準で使える文字に置き換える、もしくは文字を画像として作るのが定番となって久しいと思っていたので、驚きました。
ともあれ、外字の有無をチェックする必要が生じたので、ユーザー定義関数を作ってみました。

シフトJISの場合、16進で0xF000-0xFFFCが外字の領域になります。
VBAにはAscという関数があり、文字列の先頭のコードを返します。このコードはシフトJISのコードと比べると、外字の領域を含む範囲では、ちょうど0x10000の分だけ少ないので、これを利用します。 (さらに…)

古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報