Excelが大好きだ!

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


スポンサードリンク

VBA

SQLでデータを抽出するユーザー定義関数を作ってみた その2

先日SQLでデータを抽出するユーザー定義関数SQLSearchを作成した。 www.excellovers.com その後テストした際に追加したいと思った機能を追加してみた。 その際に風柳さん@furyutei には貴重なアドバイスを頂きました。 ありがとうございます。 例えば ADODB.…

SQLでデータを抽出するユーザー定義関数を作ってみた

Office365やExcel2019で新しく搭載された「スピル」と言う機能があります。 スピル機能を使うと複数の答えを返す関数を従来よりも圧倒的に簡単にセルに展開することが出来ます。 この機能と相性が良いのでは思っていた、ExcelのデータをSQL文で集計した結果…

VBAでSQLを使用する際にListObjects(テーブル)をFrom句に指定する方法 その2

以前にSQLのFrom句にテーブル名を指定する方法を紹介した。 www.excellovers.com 上記とは別の方法をtwitterでフォローさせて頂いている方が以前に紹介されていたのを見かけたので備忘録として記事にさせて頂く。 コード select * from [Range("個人情報").l…

Excelの勉強に皆さんが参考にされた書籍・サイト

VBA

先日このようなtweetをしたところ、30名程の方からご回答を頂きました。 「Excelをどういうきっかけで、どうやって勉強しましたか?」のまとめを公開しました!先日緩募したテーマにご回答頂いた内容を1箇所にまとめました。「Excelをどういうきっかけで、ど…

PostgreSQL・SQLite・Excel ADODBで使えるSQL文をまとめてみた

先日、こちらの書籍でSQL文を勉強してみた。 SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)作者:ミック発売日: 2016/06/17メディア: 単行本(ソフトカバー) その際にPostgreSQL・SQLite・Excel ADODB(ADODB経由でExcelをデー…

「ウィンドウ枠の固定」をちょっとだけ便利にしてみた

「ウィンドウ枠の固定」を利用すると表を下にスクロールしていっても、見出し行が隠れずに済むので、今度の列のデータを見ているか迷わずに済みます。 大変便利な「ウィンドウ枠の固定」ですが、ほんのちょびっとだけ不便な点があるんですよね。 一旦解除し…

オートフィルターがかかっている列を検索する機能にテーブルも検索できる機能を追加した

前回に引き続き機能の追加のお話。 www.excellovers.com オートフィルターと同じようにデータを絞り込む機能がテーブル機能にも備わっている。 しかし現状の機能のままではテーブルのフィルタがかかっている列を抽出することが出来ない。 さてここでシンプル…

オートフィルターがかかっている列を検索する機能を改良した

先日、タイトルまんまのアドイン機能を作成した。 www.excellovers.com 公開したところtwitterフォロワー様から以下の様の意見を頂いただので早速(パクって)改良してみた。 私も職場では横に長~~~~いテーブルを多用しているんです。でも気が付きませんで…

オートフィルターがかかっている列を検索する機能を作った

列が何十・何百とあるExcelシートでどこにオートフィルターがあるか迷ったことはないだろうか? 文字通り、「あれ、この辺りだと思ったけど」と右往左往したことはないだろう? 私はある。 現在進行系で悩まされている。 しかもまだ1・2ヶ月はこのシートと…

オートフィルタ適用状態の最終行の取得方法

最終行の取得方法というと Range("A" & Rows.Count).End(xlUp).Row のようなコードを使用するが、オートフィルタ適用時には思ったような答えを返さない。 このような表があるとする。 オートフィルタ設定前に確認すると最終行は11である。 オートフィルタ…

ADODBでExcelを操作する時の列毎の型判定の基準

VBA

Excelでデータ集計をする際には真っ先にSQLでの集計を連想してしまいます。 しかし操作する対象がデータベースではなくExcelなので、思わぬところで蹴躓いてしまいます。 今回はデータの型判定についてです。 データベースの型 Excelでも書式設定等で列毎の…

ExcelとExcel VBAでの改行の違い

VBA

Excel VBAにおいて改行というと vbCrLf や vbLf が紹介されている。 これらの定数はどんな違いがあるのだろうか? 改行に関わる定数 定数 値(文字コード) 内容 vbCrLf Chr(13) + Chr(10) キャリッジ リターンとライン フィードの組み合わせ vbCr Chr(13) …

ADODBを利用して指定した件数ずつ新しいシートにデータを転記する方法

いつも勉強させていただいているinfomentさんのblogで以下のような記事を公開されていました。 infoment.hatenablog.com ADODBにまさに上記のような機能があったはずと思いだして自分なりに作ってみた。 早速コード Sub ページ分割() '参照設定でMicrosoft A…

Excelでビッグデータを乗りこなせ(8.テーブルの正規化のVBAコード)

前回はSQLiteで単一のテーブルで管理していたデータを、データベースの正規化を行い複数のテーブルに分割してみた。 www.excellovers.com 今回は実際に単一のテーブルを複数のテーブルに分割するコードを紹介したいと思います。 例のごとく早速コード Option…

マンゴー抽選にチャレンジ

VBA

フォロワーさんがこのようなものにチャレンジしているのを見かけた。 koroko.hatenablog.com 自分はあまりこういう演出系の処理をしたことがないのでチャレンジしてみた。 コード 例のごとく早速コード Option Explicit Sub マンゴー抽選() Dim MangoNum As …

Excelでビッグデータを乗りこなせ(7.テーブルの正規化)

前回はExcelとは異なるデータベースの独自要素を盛り込みつつSQLiteデータベース・テーブルを作成した。 www.excellovers.com 今回はデータベースの独自要素、「正規化」を考慮してデータベースを分割することにチャレンジしてみます。 正規化前のテーブル構…

Excelでビッグデータを乗りこなせ(6.SQLiteデータベースの作成)

前回はExcelとは異なるデータベースの独自要素を見てみた。 www.excellovers.com 今回からはその点を踏まえつつ実際にSQLiteデータベースの作成をしてみたいと思います。 ExcelでSQLiteデータベースを操作 上記を実現するためにExcel for SQLite使用する。 …

Excelでビッグデータを乗りこなせ(5.データベースの独自要素)

ADODBを利用してCSVファイルを操作する方法を検証した。 www.excellovers.com 今回からはそのCSVを取り込むためのSQLiteデータベースの設計・作成をしてみようと思います。 データベースならではの要素 今でもSQLiteデータベースを使用していますが、感覚的…

Excelでビッグデータを乗りこなせ(4.ADODBでCSV取り込みの準備)

前回でSQLiteへCSVファイルを取り込む方法をADODBで行うことを決定した。 www.excellovers.com 今回からADODBを利用したCSV取り込みの方法を紹介します。 会計ソフトの代わりに家計簿ソフト 今回のコードは会社で使用している会計ソフトから出力したCSVファ…

Excelでビッグデータを乗りこなせ(3.CSV取り込みの試行錯誤)

前回で使用するデータベースをSQLiteにすることを決定した。 www.excellovers.com 今回からCSVファイルの取り込み方法について試行錯誤していきたいと思う。 現状の取り込み方法 ・Querytables.addでCSVをExcelに取り込む ・取り込んだデータをSQLのInsert分…

Excelでビッグデータを乗りこなせ(2.データベースを決める)

前回華々しくビッグデータの大海原に漕ぎ出したわけですが、大海原を乗り越えるための船がまだ決まっていません。このままではあえなく溺れ死んでしまいます。 ビッグデータを乗り超えるための船 データベースです まずはこれを決めることから始めたいと思い…

Excelでビッグデータを乗りこなせ(1.データベースでやりたいこと)

私は職場で経理を担当していて、月次の資料を作る際に ・会計ソフトから仕訳データをCSVで出力 ・出力したデータをExcel VBAでSQLiteにインサート ・Excel VBAからSQLを使用してSQLiteから集計後のデータを出力してExcelへ転記後、関数を使用してフォーマッ…

集計表をダブルクリックすると内訳を表示するようにしてみた

VBA

先日、会社で作ったVBAの機能に我ながらテンションが上ったので取り敢えずご紹介だけ。 完成品 このようなデータを このように集計している表があるとします。 カツの売上が先月より良いけどなんでだろうと思ったとする。 そこで5月のカツのセル(C3)をダ…

子供のために作った筆算学習ツールを割り算対応にした

VBA

先日作成したこちらの筆算の学習ツール。 www.excellovers.com 足し算・引き算・掛け算までは出来ていたのですが、勢いに任せて割り算対応もしてみました。 その過程でクライアント(嫁)から次々と要望が出てきましたが、何とか全て対応いたしました。 その…

子供のために筆算学習ツールを作ってみた

VBA

以前に100枡計算ツールを息子のために作ったのだが、学校で筆算を習うようになったので筆算のツールを作って欲しいとせがまれてしまった。 子供のリクエストとあらば答えねばなるまい! 完成品 完成品はこちらです。 足し算の動きはこんな感じです 引き算 掛…

他社に送る書類からコメントを一時的に退避させる(3.退避の改修)

前回・前々回でExcelからコメントを一覧にして抽出して別ブックに退避して削除、退避したコメントの復元までを一応完成させた。 www.excellovers.com www.excellovers.com しかし実際に使ってみたりblogへのコメントを頂いて「コメントの退避」の内容を少し…

他社に送る書類からコメントを一時的に退避させる(2.復元)

前回はコメントを全て別ブックに退避させてから、全て削除するところまでを実現させました。 今回は退避させたコメントを元のブックに復元させるところまでを検証してみます。 コード Sub CommentInport() Dim FilePath As Variant Dim myWB As Workbook Set…

他社に送る書類からコメントを一時的に退避させる(1.退避)

資料を他社に送る時に気をつけないといけないのが コメントの記載です。 自社内ならともかく他社の方に見られるとちょっとまずい内容が書かれていることが多々あります。 送付用にブックをコピーしてコメントを削除してから送信したりしていますが、この時期…

VBAでSQLを使用する際にListObjects(テーブル)をFrom句に指定する方法

VBA

ADODBを利用することでExcelのデータをSQLで操作することが出来るようになります。 SQL文のFrom句でワークシート名を指定する方法は知っていたのだが、名前定義の範囲やテーブルを指定する方法を知りたかったので調べてみた。 ワークシートの場合 まずは基本…

各種ファイル検索(Dir関数・FileSystemObject・FindFirstFile関数)比較(ファイル検索比較7)

前回まででDir関数・FileSystemObject・FindFirstFile関数と3種類のファイル検索を検証してみた。 今回はそれぞれの検索方法の特徴や処理速度などを比較検証してシリーズの締めくくりとしたい。 処理速度 まずは検索スピードについて検証してみる。 条件1 …