Excelで「Enterは下に、Tabは右に移動する」だけではない
Excelのワークシート上でEnterキーを押したときの移動方向については、メニューのファイル - オプション - 詳細設定 の「Enterキーを押したら、セルを移動する」で設定できます。 初期設定では、Excelのワークシート上でEnterキーを押すと下のセルに移動します。 Tabキーを押すと右のセルに移動します。...
View ArticleExcelで連番を入力する方法
表を作成した際に連番を入力するケースはとても多いです。 単に「何番目か?」とか「何件あるか?」ということを知るためにセットする以外にも意味があります。表計算ソフトとして使う場合、並べ替えをすることがあります。あらかじめ連番をセットしておけば、この連番で並べ替えをすれば最初の状態に簡単に戻すことができます。...
View ArticleExcelで選択範囲内の罫線の太さを変えるマクロ
Excelで困ることの一つと言えば凝った表です。罫線の太さが細かく調整されていると見た目がいいです。一方、メンテナンスが面倒になります。太さが混在していると非常に醜いです。 シンプルな表ならば一括して太さを指定し直せばいいのですが、罫線が不要な部分にもセットされてしまいます。 そこで、罫線がある部分だけを対象に太さを一括して変えるマクロを考えました。 Sub 選択範囲内の罫線の太さを変える()...
View Articleエクセルで図として貼り付けると文字がギザギザになるときの対処法
エクセルの一部のセル範囲を別の場所に貼り付けたい場合があります。セル範囲の大きさが同じならばそのまま貼り付ければいいのですが、違う場合には図(画像)として貼り付ける方法が考えられます。 貼り付けたい部分を選択して、ホーム - クリップボード - 貼り付け を選択。 ホーム - クリップボード - 貼り付け を選択。 その他の貼り付けオプション - 図 を選択。...
View ArticleExcel用列番号一覧表
前にアルファベットの順番を記憶する方法を紹介しました。 目的はExcelやLibreOfficeCalcの列番号をすぐに把握するためですが、どうしても覚えられない場合のために一覧表を作ってみました。 A4サイズで印刷して使います。 列番号一覧表 表そのものも載せておきます。 1 A 27 AA 53 BA 79 CA 105 DA 131 EA 2 B 28 AB 54 BB 80 CB 106...
View ArticleExcelで値が入力されている右端の値を取得する
セル範囲A1:H1について値が入力されているセルのうち右端の値を取得する方法です。 INDEXとCOUNTを使う方法 =INDEX(A1:H1,COUNT(A1:H1)) INDEXはある範囲についてその何番目かを指定して値を取得する関数です。 COUNTはある範囲について値がセットされているセルの数を数える関数です。...
View ArticleExcelで複数行をまとめてソートする方法
Excelの並び替えは1行単位で行いますが 複数行をまとめて並び替えをしたいケースがあります。 このような表があり果物で降順ソートしたいとします。そもそもこのような表を作らないようにするのが基本ですが。 手順は次の通りです。 次のようにソートをするための数値、数式をセットします。 C列に通番をセットする。 D列にソート用数値をセットする。 これをD列を降順、C列を昇順でソートします。...
View ArticleExcelを裏で起動させる方法
マクロ専用のExcelファイルを使っています。 Excel起動時に同時に起動させるため「起動時にすべてのファイルを開くフォルダー」に保存しています。 しかしマクロ専用なので表示させる必要はなく、むしろ邪魔なので非表示にしたいです。 方法が分かったのでメモしておきます。Excel2013で確認しました。 メニューの 表示 - ウィンドウ - 表示しない をクリック。 上書き保存。...
View ArticleExcelの一つのセルに複数のハイパーリンクを挿入する方法
Excelでは、ハイパーリンクを使うことができます。 通常は、あるセルで右クリックして「ハイパーリンク」を選択すると「ハイパーリンクの挿入」というダイアログが表示されて、設定することができます。 またHYPERLINKというワークシート関数を使う方法もあります。 一つのセルにセットできるハイパーリンクは一つだけのようです。...
View ArticleVBAでユニコードを使う方法
Excelではユニコードを使うことができます。 例えば「」(チェックボックス)はユニコードならばワークシート上で正しく表示されます。 一方、VBAエディタでは、ユニコードが使えるものの正しく表示されません。そのためVBAでコードを書くとユニコードでしか表示できない文字は表示されませんが、ワークシートに貼り付けたりすると正しく表示されます。...
View ArticleExcelでチェックボックスを一括操作するマクロ
Excelでチェックシートを作るケースはあると思います。チェックボックスが大量にあるとチェック作業が面倒です。 複数のチェックボックスを一括してチェックできる方法を考えました。 なお、ここでは開発タブから挿入するフォームではなく、チェックボックスを表す文字を使用しています。Excel2013で確認しました。 準備(マクロ) VBエディターを開く。※ExcelでAlt+F11など。...
View ArticleExcelのハイパーリンクのアドレスを取得する方法
Excelではセルにハイパーリンクを設定することができます。 このアドレスを取得するための関数を作ってみました。 Function getlink(myrange) If myrange.Hyperlinks.Count > 0 Then getlink = myrange.Hyperlinks(1).Address Else getlink =...
View ArticleExcelで半角カタカナを全角カタカナに変換するマクロ
前にWordでカタカナを半角から全角に変換するマクロを紹介しましたが、今回はExcel版を作りました。 Sub 半角カタカナを全角カタカナに変換() '20190312 作成 '全角カタカナ(ァ...ヶ) For c = -31936 To -31850 zen = Chr(c) han = StrConv(zen, vbNarrow) Call 置換(han,...
View ArticleXLOOKUPをVBAで再現
ExcelにはVLOOKUPという関数があります。これが使えるとExcel初心者は卒業と言える気がします。 「ある列を検索して同じ値がある行の別の列の値を返す」という、言葉にすると非常に分かりにくい関数ですが、使えるようになると非常に便利です。 一方で使いにくい部分もあって、例えば検索列よりも返す値の列が右にある必要があります。また返す値の列は検索列から数えて何番目というのを指定する必要があります。...
View ArticleExcelの拡張子 - xlsbは使うべきか?
Excel2003まではExcelの拡張子はxlsでした。マクロの有無に関わらず使うことができました。 Excel2007からxlsx、xlsmを使うようになりました。 xlsxにはマクロが保存できません。一方、xlsmにはマクロが保存できます。 Excelにはマクロウイルスというものがあります。 xlsだとマクロが保存できるのでウイルスを仕込まれる可能性があります。...
View ArticleINDEXとMATCHの組合せを覚える必要はない
最近、YouTubeを見ていたら「VLOOKUPでなくINDEXとMATCHの組合せを使え」という動画がいくつか表示されました。 VLOOKUPの欠点として「検索範囲の左側にある列を戻り範囲として使えない」ということがあります。 INDEXとMATCHを使うとこれが解消されます。 VLOOKUP(検索値, 範囲, 列, FALSE) の代わりに INDEX(戻り範囲, MATCH(検索値,...
View Articleマクロを書く方法
ExcelでVBAが使えるようになったのは5.0からだと思います。このときVBE(Microsoft Visual Basic for Applications)が使えるようになりました。 最近、365を使ってみましたが、使い勝手が同じでした。 Excelのマクロ(VBA)の良いところは、基本的な部分については古いコードがそのまま使えるところです。 マクロを書く方法は次のとおりです。...
View ArticleVLOOKUPを高速化する方法
ExcelのVLOOKUPが遅いのはFALSEを使うからです。 TRUEを使えばはやくなります。ただし次の点に注意する必要があります。 - セル範囲を左端の値で昇順にしておく。 - 近似一致なので不一致の場合がある。 結論 数式は次のとおりです。 =IF(VLOOKUP(検索値,セル範囲,1)=検索値,VLOOKUP(検索値,セル範囲,列番号),NA()) まずVLOOKUPで検索値自体を求めます。...
View Articleハイパーリンクの有無を判定するユーザー定義関数
Excelでそのセルにハイパーリンクがあるか否かを判定するユーザー定義関数を作りました。 「範囲.Hyperlinks.Count」で指定した範囲内のハイパーリンクの数を取得できます。 これを使っています。 Function ISHYPERLINK(myrange As Range) If myrange.Hyperlinks.Count > 0 Then ISHYPERLINK...
View Articleハイパーリンクがあるセルに網かけをするマクロ
以前、ハイパーリンクの有無を判定するユーザー定義関数を紹介しました。 今回は同じ仕組みを使い、ハイパーリンクがあるセルに網かけをするマクロを作りました。 色は「vbYellow」の所で設定します。 カラー定数 | Microsoft Docs Sub 選択範囲のハイパーリンクがあるセルに網かけ() Dim c As Object For Each c In Selection If...
View Article