スポンサードリンク

ファイル属性の判定方法(1.GetAttr関数の使い方)

VBA

ファイルやフォルダの属性を調べる関数と、その関数の返り値について検証してみました。 GetAttr関数構文 ファイルやフォルダの属性を調べるには GetAttrを使用します。 Function GetAttr(pathname as string) as VBFileAttribute 引数pathnameにはフォルダ…

2007形式から2003形式へ一括して変換

VBA

先日部長から「このメールに添付しているファイルを古い形式にしてAさんに送付しておいて」 と指示を受けた。どうやら先方からダウングレードして送付してほしいと依頼があったらしい。 仕方ないなぁと思いながら取り掛かろうと思ったらファイルが7つも添付…

コメントが遠くに移動しないより良いポジション

前々回にコメントの表示に関して www.excellovers.com ・オートフィルタ時の問題 ・セル移動時の問題 両方を同時に解決する方法が見つからないとまとめたのですが、 Kotori-ChunChunさんより いっそのこと、コメントをの位置(左上部分)をコメントを設定し…

コメントをセルの近くに表示するようにするマクロ

前回・前々回でコメントが挿入セルから遠~くに表示されてしまう、原因と対策について検証してみましたが、あちら立てればこちらが立たぬ状態で根本的な解決には至りませんでした。 www.excellovers.com www.excellovers.com そこでVBAでこの状態をなんとか…

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

前回オートフィルタ仕様時のコメント欄の表示位置について調べてみた。 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へ転記していきます。 現在の状態はこのような感じです。 ワークシートのオブジェクト名をデフォルトから変更し…