スポンサードリンク

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には改行を表現が何種類か用意されています。 それぞれの違いを交えながら紹介したいと思います。 改行表現一覧 定数 …

Excelでドラム演奏(mciSendString関数でmp3再生)

好きなんです、ドラム(1回しか叩いたこと無いけど)。 叩きたくなりますよね、ドラム(ドラムマニアは何度か)。 無理からにExcelで作ってみました、ドラム(不安定だけど)。 どんなもの 事前にキーボードのキーと再生する音の組み合わせを決めておきます。 指…

指定フォルダ内の全てのMP3ファイルのタグ情報を抽出する方法

今回は以前にご紹介した以下のネタの合わせ技で、 excellover.hatenablog.com excellover.hatenablog.com 指定したフォルダ内(サブフォルダ含む)の全てのMP3ファイルの情報を抽出、 一旦セルに全て展開してみようと思います。 合わせ技コード 早速ですが2つ…

恐怖!計算式の答えが必ず0に!(循環参照の見つけ方

先日ある計算式を作ったんですよ。 (※実際のややこしい表の一部抜粋のため数式もややこしい) そしたらですね、数式はあってるのに(あってないけど) 答えが0しか表示されないんですよ。 どこがおかしいんだろうと思って、「数式の検証」で調べてみると 途中…

ExcelからCSVにエクスポートすると数字の桁数が変わる?

本日のご質問 ・ある外部システムに取り込むためのCSVを作成したが、5桁までの制限のところに5桁しか数値を入れていないのに、桁あふれのエラーが発生してしまう。 CSVの元になるExcelファイルを確認して、ありがちな空白が挿入されていないか、Len関数で桁…

VBAで指定した拡張子のファイルを検索する方法

前回予告のうち、今回はExcel Playerに登録するMP3ファイルを、指定したフォルダ(サブフォルダ含む)の中から全検索する方法を紹介しようと思います。 FileSystemObject "VBA"でと言いつつ、今回はExcelとは違う外部の機能 『FileSystemObject』を使用してフ…

Excelの有効桁数

Excelて表「計算」ソフトだから数字の扱い問題なくこなしてくれると思っちゃいますよね。 でも意外なところで正しく数字を扱えなくなります。 有効桁数 Excelは数字を数字として扱える(計算ができる)桁数に限界があります。 この状態で右端に「6」を追加す…

VBAの処理時間を計測する

VBAでコードを書いているとこんなことが気になったりします ・自分がExcelの機能、どれ位処理時間がかかっているか ・どれだけ効率化に貢献できたか。 ・もしくはAのコードとBのコードどっちが速いのか。 そんなときにVBAでは経過時間を計測する方法がいくつ…

ExcelからSQLite3を操作する方法(3.データベース・テーブルの作成)

前回まででsqlite3.dllとSQLite3_StdCall.dllが使用可能状態になっているかと思います。 次は実際にSQLite For Excelを利用してSQLite3のデータベースとデータベース内のテーブルを作成してみます。 Sqlite3Demoはこの部分 ​ 今回は指導書「Sqlite3Demo」の…

Worksheetは最大何枚まで追加できるのか

以前の記事で新しいブックの作成時に表示できるWorksheetの最大値は255枚だと判明しました。 excellover.hatenablog.com では新しいブックの作成時に関わらず、追加できるWorksheetの最大枚数は一体何枚なのでしょうか? 調べてみました。 マクロでシートを…

新しいExcelをファイル開いた時のシート枚数を変更する

Excelの資料が送られてきて中身を確認。 まずSheet1を見て次にSheet2を見たら 真っ白 さらにSheet3を見たら また真っ白 そんな事ありますよね。 本当に些細なことではあるんですが 「ないんかよ!」と心の中でツッコんでしまうこともしばしばです。 送られて…

ExcelからSQLite3を操作する方法(2.SQLite3.dllに接続)

前回まででSQLite For Excelを使用する準備が整いました。 今の状態はこんな感じでしょうか。 今回は実際にSQLite For Excelを使用してSQLite3.dllへの接続までやってみたいと思います。 Sqlite3Demoに全てがある これからやることは基本的に全てSqlite3Demo…

ピボットテーブルのデータを手動で任意に並び替える方法

先日、書いたこちらの記事を作成中に気づいたんだけど、ピボットテーブルのデータは任意の位置に並び替えることが出来ます。 excellover.hatenablog.com 昇順・降順の基準でしか配置できないと思っていたのでビックリしました。 またもや行ラベルに答えあり…