Excelが大好きだ!

Excel大好き経理マンがExcelの事を書き綴っていきます。


スポンサードリンク

2018-01-01から1年間の記事一覧

コメントが気がついたらどんどん離れていってしまう原因

前回オートフィルタ仕様時のコメント欄の表示位置について調べてみた。 www.excellovers.com 長年の不満がスッキリ解消したかに思われたが、あの設定をすることで別の問題が発生することに気がついてしまったので、その事を調べてみました。 気がついたらい…

コメントが遠くに表示される症状への対処法

前回コメントが沢山表示されているときの一括での表示・非表示を紹介した。 www.excellovers.com ついでにと言ってはなんだが昔からコメントを使用していてイライラすることがあるので、それを解消できないか調べてみた。 画面外まで伸びる線 例えばこのよう…

コメントを一括で表示・非表示にする方法

人からもらったExcelでコメントがたくさん表示状態になっているのに遭遇した際に、非表示にする方法に迷ったので備忘録。 右クリックからは無理 まず試した方法はこれ。 Ctrl + gでジャンプ機能を呼び出して 「セル選択」をクリック 「コメント」を選択してO…

配列から空白(Empty)を取り除く方法

セル範囲を一括で配列に取り込んだ際などに、空白が紛れ込むことがあります。 そのような場合に配列から空白を除く方法を検証してみます。 空白のある元データ 簡単なデータを用意しました。 このセル範囲を配列に取込、空白の削除を行うのが以下のコードで…

VBA変数の初期値とEmptyの不思議

VBA

変数って代入して初めて値が発生しているかと思いきや、宣言をしただけで値が入ってるんですよね。 今回は変数の型ごとの初期値を調べてみました。 変数の初期値一覧 早速だがこれが変数の型ごとの初期値一覧です。 型 初期値 String "" Boolean False Byte …

CDと本の管理システムをExcelで作成する(7.検索結果(配列)をSQLで並び替え)

前回でレーベンシュタイン距離を付与することが出来ました www.excellovers.com 今回はレーベンシュタイン距離の値に応じ検索結果を並び替えたいと思います。 ソートアルゴリズム?いえSQLです 検索結果はユーザーフォームに表示される直前に多段階配列(ジャ…

CDと本の管理システムをExcelで作成する(6.SQLite3データベースからのデータ抽出フォーム)

前回までで、MadiamarkerからのSQLite3データベースへのインポートと、データ入力のフォーマットを作成した。 www.excellovers.com 今回からは入力したデータを検索する仕組みを作ってみたいと思う。 検索ユーザーフォーム全景 まずはシンプルに仕上げてみる…

CDと本の管理システムをExcelで作成する(5.SQLite3データベースへのデータ入力フォーム2)

前回は入力フォームに設置しているテキストボックス等の設定を確認した。 www.excellovers.com 今回はユーザーフォームに設定しているコードを確認していく。 入力項目を選択制にする 今回のコードはいずれもユーザーフォームに記載しています。 Private Sub…

CDと本の管理システムをExcelで作成する(4.SQLite3データベースへのデータ入力フォーム1)

前回でSQLite3データベースへMeidaMarkerのデータを挿入して基礎となるデータベースが完成しました。 www.excellovers.com 今回はこれから新しくデータを登録する際の入力フォームを作成してみたいと思います。 ちょっと長くなりそうなので、第1弾としてフ…

CDと本の管理システムをExcelで作成する(3.SQLite3データベースへのデータ挿入)

前回はCD・本データを格納しておく、SQLite3データベースを作成しました。 www.excellovers.com 今回は作成したデータベースへMediaMarkerからダウンローしたデータを挿入してみます。 下記のコードを標準モジュールに記載してください。 Sub CDBookManger_…

CDと本の管理システムをExcelで作成する(2.SQLite3データベースの作成)

前回、管理システムの元ネタとなるデータをMediaMarkerからダウンロードし、利用する項目を選定しました。 www.excellovers.com 今回はCD・本データを格納しておく、SQLite3データベースを作成します。 SQLite for Excel でデータベース作成 以前にも使用し…

CDと本の管理システムをExcelで作成する(1.MediaMarkerのデータをエクスポート)

前回、華々しく(?)スタートした当プロジェクト。 www.excellovers.com まずは今まで私が使っていた本・CD管理サービスMediaMarkerからデータをエクスポートして、元データとしたいと思います。 設定→CSVエクスポート 右上の『設定』 サイドバーから『CSVエク…

CDと本の管理システムをExcelで作成する(0.プロジェクトスタート)

先日こちらの記事を拝見しまして、無性に作りたくなりました infoment.hatenablog.com ExcelでCDと本の管理システム 例のごとく行き当たりばったりになりますが、少しずつ組み立てていきたいと思います。 管理システムを作成する理由 直接的な原因は上記のbl…

CSVファイルを配列へ取込、データベースへ高速Insert

前回CSVファイルを全件一括で取り込もうして失敗してしまいました。 www.excellovers.com コメントで「1行ずつ配列にいれてみては」とアドバイスを頂きましたので、実践してみました。 高速かつ手間いらず データ量:566,401×70のCSVファイル。213MB。 処理…

配列を使って高速化しようとして失敗したお話

タイトルそのままですが。 今日試して撃沈したネタをご紹介します。 セル範囲を配列へ取り込み高速化 VBAでの処理高速化ネタの一つにセルへのアクセスを極力減らすというものがあります。 そのためにセル範囲を一旦配列へ格納してから諸々の処理を行うと処理…

SQLite for ExcelでIn Memory Databaseを使用する方法

以前にSQLite3データベースをExcelから使用する方法をご紹介しました。 www.excellovers.com その時には使い方がわからなかったIn Memory DataBaseという機能の使い方がわかりましたのでご紹介します。 In Memory Databaseとは 正確な定義はググって頂くとし…

Split、Joinの区切り文字は1文字じゃなくても良い

VBA

先日SQLの in 句を作成するためにこのようなことをやっていたのですが 実際にはもう少し単語を繋げていたので何ともイケてないなぁと感じていたら Join関数があるじゃないかと閃いたんですね。 その時に自分の中で思わぬ発見がありました。 区切り文字(Delim…

図形内テキストで改行できない

本当にこれも何度となく出くわすんだけど、気づかずにEnter連打する時があるという。更にはセル内改行と一緒かと思いAlt+Enterをするも何も起きないという。 戒めのための備忘録。 改行できる場合と出来ない場合 もちろん図形内テキストでも改行はできます。…

Thisworkbook.pathってどこ?

VBA

Thisworkbook.pathってどこ? 先日このような記事を公開しました。 www.excellovers.com この記事を作成している際に実務でも時々出くわす事態に遭遇しましたので紹介します。 アドレスは無し? Option Explicit Sub BookPath() MsgBox ThisWorkbook.Path En…

定数と変数で同じ名前をつけた(重複した)場合の挙動

VBA

要はタイトルのようなミスをやらかしてドツボにはまってしまった時のお話です。 なぜなんだ?と首をひねり過ぎて疲れてしまったので、同じことをやらかさないようにするための備忘録 プロシージャレベル優先? やらかしてしまった状態を極限まで簡素化したの…

配列のセルへの一括転記(3.転記の方法と大量データの並び替え)

前々回で配列の並び方、前回で行列の並び替えについて調べてみました。 www.excellovers.com www.excellovers.com 今回は配列のセルへの一括転記とTranspose関数の限界を超える大量データの並び替えについて調べてみました。 Transpose関数の限界と対応 配列…

配列のセルへの一括転記(2.配列の行列並び替え)

前回は配列のデータの並び方について調べました。 www.excellovers.com 今回は前回解説した3種類の配列について、それぞれ行列並び替えをした際に どのようにデータ並び替わるのかを調べてみたいと思います。 Transpose関数で行列並び替え VBAで配列の行列…

配列のセルへの一括転記(1.配列の並びとは)

VBAで取得している配列をTranspose関数で行列を入れ替えて、 セル範囲へ一括貼り付けをよく使います。 配列からの一括転記にすると処理がかなり高速化されます。 しかしこのTranspose関数を使えば良いのか使わなくていいのか、 2回使わないといけないのかで…

ピボットテーブルで行タイトル・列タイトルを表示する方法

ピボットテーブルを初期状態で作成するとこのような感じに出来上がるかと思います。 行ラベル(列ラベル)てなんやねん このままでは紙で提出したときに何を集計したのかと全くわかりません。 行ラベル・列ラベル共にピボットテーブルのフィールド名が表示され…

Text関数の「0埋め」についてふと思ったこと

TEXT関数、ちょいちょい使います。 といっても僕の使用用途で最も多いのは 「0埋め」です。 例えば本当は5桁のデータだけど、 取り込んでいるデータでは頭の0部分が欠落している場合に 0を補填する場合です。 で、ふと思ったんですけど これ数字だから前…

ExcelからSQLite3を操作する方法(5.データの抽出)

前回まででSQLiteデータベースにMP3タグの情報が蓄積された状態になっています。 今回は蓄積された情報をSQLiteデータベースから抽出をしてExcelへ転記していきます。 現在の状態はこのような感じです。 ワークシートのオブジェクト名をデフォルトから変更し…

ExcelからSQLite3を操作する方法(4.データの挿入)

前回予告どおり今回は取得したMP3タグデータをExcelへの転記ではなくSQLiteデータベースに取り込んでみようと思います。 SQLのInsert文でデータを取り込む Sub GetMusicFileProperty() n = 0 ReDim MusicFileProperty(n) FileSearch "G:\Music\" ReDim Prese…

日付をコピペすると違う日付になってしまう時の対応

先日こんな事例に遭遇しました。 ・あるブックにDate関数で作られた日付がある。 ・その日付をコピーして別のブックに値で貼り付け。 ・値貼付けした後で書式を「日付」に変更した。 ・元のブックの日付と異なる日付が表示された。 久しぶりに???てなりま…

横方向(列単位)への並び替えの方法

先日こんなつぶやきを見かけました。 Excelの並べ替えは縦方向だけなくて横方向でもできるのです。— 佐藤嘉浩(Excelの魔法使い・5さい) (@yosatonet) August 23, 2018 マジで? この作業をするときは、縦方向に並び替えてから行列を入れ替えて貼り付けたり…

VBAでの改行の方法

VBAでの改行の方法 メッセージボックス(msgbox)で表示する文章が長くなってくると、見やすくするために改行を行いたときがあります。 VBAには改行を表現が何種類か用意されています。 それぞれの違いを交えながら紹介したいと思います。 改行表現一覧 定数 …