マクロを停止してブックを開く

起動したら自動で実行し、そのまま終了するExcelブックを マクロを無効にして起動するプロシジャです。 ===================== Sub bkOpenNoMacro() Dim str As String Dim sWB As String ’ ブック名を指定する sWB = "XXXXXV2_R6_Auto…

QUERY関数 選択項目が空白のとき、IFで対応する

=if(G5=1 ,query(MEV!B11:K500,"SELECT B,D,E,G,H,I,K WHERE (D >= '"&D2&"' and D <= '"&E2&"') and (E>="&D3&" and E<="&E3&") and (G ="&E5&") and (H ="&F5&")") ,query(MEV!B11:K500,"SELECT B,D,E,G,H,I,K WHERE (D >= '"&D2&"' and D <= '"&E2&"') an…

FILTER 1, 2, 3, ALL

TgtCELL を2つにして範囲指定にする

FILTER A or B or ALL

filter関数で tgtCELL: A->B, B->A, ALL->"" として 対象範囲 <> tgtCELL

SQL インデックスで高速化

数十万行から、目的の条件の最新データを1件探す。 通常、2分程度かかっていたが、インデックスで 1秒に短縮できた。 インデックスのクリエイト CREATE INDEX getLastData ON dbo.pVr_T_MEV ( Site,Line,Machine,MEV_NAME ) GO 結果 DECLARE @Site nvarch…

ストアドプロシジャの内部ループ処理

JSONデータを1つの列の格納されたJSON文字列から、可変数の項目&値を取り出す方法です。 ストアドの内部に @innerSQL @ParamSQL を使って、WHILE ループで必要数のJSON項目をパースします。 -- ============================================= -- Author: …

SQL_MID関数

説明:項目が数珠つなぎに列挙されたテキストから、項目を抽出する スカラー値関数 説明:項目が数珠つなぎに列挙されたテキストから、項目を抽出する スカラー値関数 CREATE FUNCTION [dbo].[GetMidText] ( @strTGT nvarchar(max) --= 'ID=123 氏名=山田太…

Excel SQL の狭間で不明な文字 " ?"

" data-en-clipboard="true">製品名称 = "製品名XXXXX ?" という " ?" という不思議なゴミコード replace("製品名XXXXX ?","?","") が効かない replace("製品名XXXXX ?","vblf","") も効かない WorksheetFuntion.clear("製品名XXXXX ?") も効かない なので、…

SQL SELECT文の高度な関数

SQL

docs.google.com

SQL 高速化の金言

BIサービス SQL高速化の仕組み SQL高速化 を考えてみます。 2つのレコードを接続するとき 例1 1万行の検査データ と 100行の 品目マスタデータ があり 検査データの 品目コードに 品目マスタの 品目名と標準原価をつなぐ。 方法 ①LEFT OUTER JOIN ②INNE…

Excel テキストファイル読み込みを TextStream で劇的に高速化した

Excel テキストファイル読み込みを TextStream で劇的に高速化した 条件:文字数 85万文字 before 4分 after 0.4秒 当初の1行処理 文字数 85万 で 4分 Public Function ReadTextFile(ByVal sFilePath As String, _ ByRef strResult As String, _ Optional…

小数点以下のzeroを消去する

SQL 小数点以下の Zero を消去する 不良率とか 割り算すると、 1.2300000000 というように Zero が限りなく表示されます。 ときどき 突っかかるので、備忘で記録しました。 小数点以下のzeroを消去する convert(float,round((((sum(不良数) * 1.0) / sum(検…

Excel VBAを使ってGmailからメール送信

Excel からメールが送信できる。今ごろ知ったのが少し恥ずかしいです。 CreateObject("CDO.Message") を使うと簡単にできるのですね、 www.google.com すると記事が沢山でてきます。 この機能で、HTML 本文、HTML署名 さらに添付ファイルもできる。 ーーー …

Excel VBAで簡体字をあつかうことができるか?

中国語の簡体字を、SQLサーバに登録する。というテーマです。 自分は いつもExcelシートで登録データを編集して、VBAでSQLサーバにアップロードしています。 ところが、Excelで簡体字は編集できまがVBAでは Unicode が扱えず、結果として簡体字が '???' と壊…

Excel 罫線を引く、記録マクロを解読

罫線を引く を解読する なにもないシートに 罫線を引きます。 この 罫線を引く動作を マクロの記録 でコードをとります。 取得したコード こんなに沢山コードができます。------------------------ Sub Macro6() Range("B2:D4").Select Selection.Borders(xl…

SQL サブクエリの入れ子のサブクエリ ここまでできます。

必要に迫られて、Case When 内に サブクエリをいれてみました。 備忘でここに記します。 ----------------------------------- ,case when Cnt = (select count(distinct(Place)) PlaceCnt from [dbo]. [Table_xxxx] where InspstepsID = A.InspstepsID and …

GLobal IP Address 取得

外部システムへのアクセスや、システム間通信などの時、グローバルIPアドレスの登録を求められることがあります。調べ方を探すのが面倒な時は、こちらのグローバルIPアドレス取得プログラムをご利用ください。 ↑クリックでダウンロード

Excel バージョンは何?

自分が使っているExcelのバージョンは何? これが Excelのバージョンによって、調べ方が異なるので(?)迷うこともあるかと思います。 またExcelマクロがバージョンによって動作が異なることがあるなど、調べる必要がでてきます。 それで PCのExcelバージョ…

SQL 困ったときのトリガー頼み

SQL

SQLテーブルのレコードの日付列が空白になっている!! エッ その日付で集計分析しているのに!! 登録するタブレット側のプログラムを修正するには時間がない。 こんな時はトリガーの出番です。トリガーとは、レコードが新規追加や更新が発生した時に作動す…

SQL ROW_NUMBER() OVER(partition で欲しいデータを得る

同じ品物を何度も購入したとき、最安値は? 同じ品物を何度も購入したとき、最後に購入した時の価格は? など いろんな条件でデータが欲しくなります。 そんなとき、ROW_NUMBER() OVER(partition を使うと便利です。 元々のデータ 検索するコード SELECT * F…

Excel オートフィルターの扱い

VBA で Excelシートを、Read Write するとき、そのシートにフィルターがかかっていると誤動作しやすいです。 それで、シートを扱う前に オートフィルターを次の方法で調整します。 ①もし フィルターがかかっていたら、フィルターを解除する。 ②後で利用者の…

SQL  続:月初と月末日を求める

このテーマで、関数をつかうと、シンプルに作れます。 EOMONTH という関数は 月末を求める関数です。 EOMONTH('対象日', 追加月数) 月数はマイナスもあり ------------------------------------------------ サンプルコード SELECTDATEADD(Day,1,EOMONTH(ge…

SQL 累積を求める SUM() over (Partition By ** ROWS UNBOUNDED PRECEDING)

SQL で データ集計して、時系列のデータの累積を求める というテーマがあります。 つまり 開始から各行までの合計だったり、過去7回の累計で移動平均を求める など これまではストアドプロシジャのカーソル処理で1行づつ計算する方法を採っていました。 と…

Excel 月初と月末日

Excel VBA での月初と月末日を求める関数です。 日付の操作は毎回調べるので、ここに記します。 --------------------------------------- '指定日の月初日を取得するPublic Function fnc_xlGetDateFirstofMonth(ByVal d As Date) Dim dRes As Date dRes = D…

SQL 数字文字の桁数を調整する

SQL

10, 20, 30, , , といった数字文字を 0010, 0020, 0030, , , のような 4桁数字に変換することはよくあります。 --- コード ---- DECLARE @No nvarchar(20) = '20' SELECT RIGHT('0000' + @No,4) as Num4 ---- 結果 ----- Num40020 ------------------ それ…

SQL 月初日と月末日

よく使うのですが、毎回コーディングすると大変なので、備忘でしるします。 SELECT dateadd(day,0,convert(date,convert(nvarchar,year(dateadd(MONTH,0,dateadd(hour,9,getdate())))) + '/' + convert(nvarchar,month(dateadd(MONTH,0,dateadd(hour,9,getda…

Excel数式 SUBSTITUTE

職場で隣の部署の方に頼まれた。 アンケートの名簿が2つあり、結合したいのですが、名前が '山田一郎', '山田 一郎', ’山田 一郎' というような、空白なし、全角空白、半角空白 が混在していて Vlookupでマッチングできなくて困ってます。 とりあえず、急ぎ…

SQLストアドプロシジャ ちょっとの工夫

SQLストアドで 実行時刻を表示させた EXEC sp_executesql @InnerSQLprint '実行時刻= ' + convert(nvarchar,DateAdd(Hour,9,getdate())) 結果 ================= 実行時刻= Aug 17 2019 7:53AM ========================

SQL テーブル外観 いつものメモ

SQLテーブルを見るとき テーブルの 「行数」「最初データ」「最後データ」を見ます。 その いつものコードです。 SELECT count(*) as Cnt , Min(WorkStateDT) as SttDT ,Max(WorkStateDT) as EndDT FROM [テーブル名] Cnt SttDT EndDT699965 2019-04-01 00:0…

Excel VBA MacAddress 取得

よくありそうで すぐにつくれないので ここに記録します。 Private Sub mc() ' MsgBox (fnc_getMacAddress) MsgBox (fnc_GetMacAdrs)End Sub Public Function fnc_GetMacAdrs() As String ' ????_MAC?A?h???X????() Dim objConf, objMACEna, strIP Set objCo…