Excel
Twitter のお題、 280バイトを超えない範囲で区切りのよいところで分割したい を解いてみました。お題は、こちら【エクセルお題】ツイートの下書きをA1セルに入れています。バイト数はLENB関数で分かりますが、単純に280バイトで区切ってしまうと文章が尻切…
はじめに 処理の概要 使用するAPI FindWindow GetWindowLongPtr SetWindowLongPtrA SetLayeredWindowAttributes 拡張ウィンドウスタイル コード 事前準備 標準モジュール 実行サンプル はじめに Windows では、Windows 2000 Professional 以降のバージョンで…
初めに キーワード アタッチ デタッチ 実際にやってみる 操作の流れ アタッチ ブレークポイント ステップイン ステップオーバー ステップアウト 続行 デバッグの停止 全てデタッチ プロセスに再アタッチ ウォッチ 自動変数 ローカル メモリ 主なショートカッ…
初めに 事前準備 アライメント #pragma pac による要素の配置への影響の確認 pacあり、ダミーメンバーなし pacなし、ダミーメンバーなし pacなし、ダミーメンバーあり pacなし、ダミーメンバーあり2 メモ コード DLL AccessibleFromVBA.h AccessibleFromVBA…
初めに 処理 コード DLL AccessibleFromVBA.h AccessibleFromVBA.cpp AccessibleFromVBA.def VBA 実行結果 DllTestSetArrayV DllTestGetArrayV まとめ 過去掲載分 初めに 前回の予告通り、今回は非配列のVariant型変数に配列を格納して、DLLとの受け渡しをし…
初めに SAFEARRAYに関する追加情報 配列要素のデータ型 引数 主な処理と使用する関数 HRESULTを返す関数の成否判定 SAFEARRAYに格納されている要素のデータ型分類値の取得 配列の次元数の取得 配列の1要素のサイズの取得 指定した次元のインデックスの指定…
初めに BSTR 構造 メモリ管理 ポインタを介してのデータの書き換え 内部のデータ文字列の状態 ヘッダ 関数 SysAllocStringByteLen SysAllocString SysAllocStringLen SysFreeString SysStringLen SysStringByteLen SysAllocStringとSysAllocStringByteLenの…
はじめに SAFEARRAY SAFEARRAY構造体 cDims fFeatures cbElements pvData rgsabound 次回予告 過去掲載分 はじめに 前回の文字列の受け渡しでは、VARIANTを使いました。(自分でもびっくり)今回の配列でも、int* とか short* とかを使うのかと思いきや SAFE…
その1、その2と書いたものの 1年以上放置して、いまさらの第3段。今回は、文字列の受け渡しです。 初めに 文字列を受け渡しするためのデータ型 VARIANT型 vt bstrVal pbstrVal 関数 DLL側でのVARIANT内部形式の判断 VARIANTの文字列の変換 VARIANT→BSTR …
Excelでフィルタの適用状態に関わらず、任意のセルの(見た目上の)ひとつ上のセルの値を取得しようというもの。元ネタはこちら koroko.hatenablog.com 別の方法で、こちらでも。 infoment.hatenablog.com両者とは別のアプローチで・・・目次 抑えておくべき…
初めに Union メソッド 機能 構文 パラメータ 戻り値 使用例 Areas.Count と Areas.Item(N) 実際に返ってくる値 Areas.Item(N) Areas.Count 複数の Range がひとつの Areas.Item( N ) に纏められるケース(具体例) 隣接する2個以上の Range が矩形となる場…
下記のサイトで、同じデータのセルを結合するということで、Unionを使ってRangeをまとめて最後にMergeという処理を行っていました。kouten0430.hatenablog.comこれはこれで良いのですが、非連続データならともかく、連続データである場合には、 個人的には、…
コロ子さん(id:SNegishi)のところで、自動採番処理をやっているのを見て、ちょっと気がついた点をコメントしました。 すぐに修正版がアップされて「おぉ~、仕事はえぇなぁ」と感心していました。 koroko.hatenablog.com そんな中で、 「Worksheet_Selecti…
Excelでデータを入力していると、1行目にヘッダ行があって、実際のデータは2行目からということはよくあると思います。 VBAで何らかの処理を行っている際に、ヘッダ行を含んだRangeは取得済みだけど、ヘッダ行を除いた部分をRangeとして取得したい場合、今…
難しく書いたけど、要するに ある製品の販売価格が、不定期に変わっていて、その履歴が残っている。 じゃあ、「任意のタイミングでの販売価格はいくらか?」を取得するというもの。元ネタはこちら https://twitter.com/ia02003812/status/112285709966959820…
いつもの如く、怪しげな事(?)をゴニョゴニョとやっていて、 「あれ、さっきより処理速くね?」となったので・・・ 経緯 結果 コード まとめ(のようなもの) 追記 行削除(2019/5/5) 経緯 ワークシートに50万件ほどのデータがあって、そいつにフィルタ…
AutoFilterの抽出条件に配列が使用できるとの事で、試してみた際にハマったので・・・こんなデータを用意。 まずは、1件抽出するコード。こんな感じ? Public Sub doAutoFilter() Dim r As Range Set r = ThisWorkbook.Worksheets("Sheet1").Range("A1").Cu…
ADOというとデータベースに使うというイメージが強いような感じがしますが、Excelに対しても使えます。Excelのワークブックを指定して、ワークシート名の一覧取得を、ADOの使用有無で行ってみます。 使用環境 Windows 10 Home Excel 2013 CPU:古い(恥ずか…
以前の記事でDictionaryのItemに配列を格納して、後から更新しようとして出来なかったが、懲りずに今度はRangeを格納して試してみた。z1000s.hatenablog.com結論から言うと、今回は更新可能でした!!! DictionaryのItemを更新することで、ワークシートの値…
あまり使う事はないような気がするが、複数のセル範囲の集合をひとつのRangeとした時、そのRange内のデータにどうやってアクセスするのか?やってみました。 複数のセル範囲が不連続の場合のアクセス方法を調べることが目的です。Unionで纏める記事はそれな…
もうすぐ3月です。 私のいる会社では、月末近くになると年度末の棚卸しがあります。担当の方がデジカメで写真を撮っては、Excelのワークシートに ちまちまと貼り付けてはサイズと位置を調整して・・・面倒くさそうです。(私はその作業に関しては部外者なの…
どうせなので、多次元配列(3次元だけど)にしてみた。 テスト用データ その1 配列を格納してみる Public Sub Dictionaryに配列を追加() Dim dicValues As Dictionary Dim lValues(1, 1, 1) As Long Dim lKey As Long Dim i As Long Dim j As Long Dim k A…
休日判定を作ったので、その応用を2。Excelのワークシートに休日を指定色にしたカレンダーを作成してみる。 (ソースコードへのリンクは下の方に・・・) 更新履歴 2019/6/13 横1列バージョンを追加しました。 仕様みたいなもの 通常(?)の1週間横並び …
休日判定処理を作ったので、その応用を。「翌営業日の日付が知りたい」とか、そういった類です。 休日判定クラスモジュールを用意して、それとは別に標準モジュールを用意して、以下のコードを貼り付けます。 あとは、getNthWorkingDayに必要なパラメータを…
3ヶ月半ほど前の5月28日に、VBAの祝日判定コードを書いたところ思っていた以上にアクセスされているようで、「以外に需要があるものだ」と少々驚いています。(推定で平日30件たらず?ですけど・・・)そこで、図に乗った空腹おやじは、前回の祝日判定…
次回予告までしておきながら、他にVBA関係の記事を書いていたこともあり、既に2ケ月以上が過ぎ、 「いつ頃までに、まとめられるかは、不明・・・」の記載通りになってしまった。前回も書きましたけど、64bit版のVBAではどうなるかわかりませんので!!!今…
2018年6月13日、参院本会議で可決、成立しました。これに伴って、2020年の祝日が移動するものが出てきたようなので、先日公開した祝日判定処理を更新しました。 また、2020年からは「体育の日」が「スポーツの日」になるそうなので、合わせて対応済みです。…
この記事では、予め用意された祝日テーブルを使用するのではなく、 クラスモジュール内で、祝日テーブルを自前で生成し、Dictionary に格納して判定処理を行っています。 祝日の定義は、クラスモジュール内に、汎用性を考慮した状態でハードコーディングして…
最近VBAネタが続く・・・今使っているOffice 2013を買う時、Accessはあれば便利かもしれないけど、 「どうせ使う機会は無いだろう」という事で、Office Personalを買ったので Accessは持っていない。しかし、最近になって〇〇なデータ管理をしようかと思った…
ExcelのVBAでもそこそこの事は出来るけれど、C++で処理したい事があって「DLLにしちゃえ」と思ったはいいが、いろいろと忘れて(いや、覚えてないから忘れられないだろうorz)作るのが大変だったので、まとめてみることにした。 とりあえず、今回は、何もし…