プログラムなどでExcel操作をすると、プロセスが残ってしまう問題。 残らないようにするには、 Workbook Worksheet Range その他色々・・・・・・・使ったあとに全てのオブジェクトに対して、いちいち ReleaseComObject 又は FinalReleaseComObject 最後にお…
C++Builder10.2 Tokyoで行った。VCLプロジェクトのソースでだいたい良い感じになった。 それ以外のバージョンやプロジェクトタイプについては分からない。 FastReport対応。 definesはインテリセンスが吐くエラー内容を見て、それらしいものを埋めていった。…
戻り値だけが異なる同じ名前の関数をオーバーロード定義は出来ない。クラスにして型変換オペレータを定義すればほぼ近いことが出来る。 #include <iostream> #include <string> using namespace std; class C { int v; public: C(int _v){ v = _v; } operator int(){ return v </string></iostream>…
数値以外に対してシングルクォーテーションで囲みたい Excelでは日付も数値とみなされるので、isNumber関数とかValue関数では判定出来ないが、CELL("format",A1)を使えば、セル書式に基づいて判断できる セル書式の1文字目は 数値 : "F" 日付 : "D" なので"F…
通常、一般ユーザはHKEY_CURRENT_USERしか変更出来ないが、HKEY_LOCAL_MACHINEなどの一部だけを許可したいとき。 $regkeyのところは、設定したいレジストリキー。 Users に対して許可する。 ContainerInheritとObjectInheritを指定するので、配下も許可する…
subAddQuoteは$strの$s文字目から$n文字を抜き出し(ゼロ始まり) セル内は="xxxx"の形にするので、Excelで開いたときに指数形式に勝手に変換されたり、頭の0を取り除かれたりしない。 col1~3はCSVの列名になる。 function subAddQuote([string]$str, [int]…
ClickOnceでアプリを公開する場合に、「アプリケーションと同じ場所から前提条件をダウンロードする」に設定すると、配布先でフレームワークのダウンロードが不要になるので、インターネット環境がない相手の場合には有効。 プロジェクトのプロパティ→公開→…
以前はエクスプローラーからアクセス出来ていた。下記はブラウザ起動に変わる。 フォルダ内全ての .lnk ショートカットから .url を生成 $wsh = New-Object -ComObject WScript.shell ls *.lnk | foreach { $s = $wsh.CreateShortcut($_) $spath = $s.Target…
wp-content/plugins/mw-wp-form/classes/validation-rules/class.url.php というファイルがある。これはURLを入力してほしい時のルールである。 単純に考えて、これの条件を逆にすればURL禁止ができる。 class.url.phpをコピーして、class.nourl.php とする…
$PROFILE が指し示すファイルを作成or編集し、powershell起動時に設定したいロジックを記載する 例: Set-PSReadLineKeyHandler -Key Tab -Function Complete #tabキーの挙動をbashの様な感じに Set-PSReadLineOption -Colors @{ Operator = "ffbb33" } #演…
なんでも | ConvertTo-Html | Set-Clipboard をつければ良い。 一発でクリップボードに入り、Excelに貼り付ければ勝手に表になる。 あとは要らない列を消すだけ。 ls | ConvertTo-Html | Set-Clipboard Get-Process a* | ConvertTo-Html | Set-Clipboard Get…
ワンタッチ更新 google spreadsheets をExcel形式でダウンロードすれば当然Excelで開けるが、元データが更新されたらまたダウンロードしなければならない。Excelには元データが更新されたらワンタッチで更新出来る機能があるが良く使われるのは DBから CSVな…
Range型に代入でいっぺんに書き込める配列の条件: 縦,横の要素数が1で始まっている ジャグド配列ではなく、Object[,]型 .Range("A:H") とかだと遅くなるので、きっちり終わりの範囲を示す 要素指定順は[row, column] 下記はlsコマンドの出力から各プロパテ…
sharepointのExcelパスを加工してHYPERLINK関数でリンクさせようとすると色々とうまくいかない時がある。 こういうやつ https://xxxxx.sharepoint.com/sites/aaa/bbb/Shared%20Documents/~~ シート関数の ENCODEURL() はコロンやスラッシュもエンコードし…
準備 using namespace Microsoft.Office.Interop.Excel [Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Interop.Excel") これは[Microsoft.Office.Interop.Excel.Range] などを [Range] と省略できるメリットがあるが、名前空間にうるさい人…
int[] にキャスト PS> $arr = ([int[]](1..3)) PS> $arr.GetType() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Int32[] System.Array foreach-objectするとObject[] PS> $arr2 = $arr | %{ $_ } PS> $arr2.GetType() IsPub…
クッキーのみでセッションが特定出来る場合 例:Redmine EdgeやChromeの開発者ツールの「アプリケーション」タブからクッキーの名前と値をコピーして、 $url="https://xxxx.cloud.redmine.jp/issues/71643" #表示中のURL $session = New-Object Microsoft.Po…
Windows起動時に自動実行してしばらく使っている。 数GBくらい違う。 いまのところ不具合なし。 cd $PSScriptRoot #準備 $tdir = ( "$env:APPDATA\Microsoft\Teams\Cache", "$env:APPDATA\Microsoft\Teams\Code Cache", "$env:temp\", "$env:LOCALAPPDATA\Te…
デスクトップに bbb.ps1 ファイルを実行するショートカットaaa.lnkを作るのに $wsh = New-Object -ComObject WScript.Shell $lnk=$wsh.CreateShortcut("$env:USERPROFILE\Desktop\aaa.lnk") $lnk.TargetPath="powershell -ExecutionPolicy Bypass -command "…
ぐぐってみると .Net のArrayListを使ったりという情報があるけど、そこまでしたくない時。 WorksheetFunction.Sortが使えた。 Dim dicSum As New Dictionary, v 'なんか格納 For Each v In WorksheetFunction.Sort(dicSum.Keys, 1, 1, True) Debug.Print "k…
TarrayField の Fields や FieldValues を使うという情報があったが、なぜか先頭要素しか取得できなかった。 FieldByName() で取得した TField を TDataSetField へキャストし、 TDataSetField の NestedDataSet->Eof を見ながら Next() していく方法でうま…
support.microsoft.com 便利だが、立ち上げ方法が分かりにくい。スタートメニューから起動出来るように %AppData%\Microsoft\Windows\Start Menu\Programs を開き、 新規作成 → ショートカット で下記を入力し、エンター powershell.exe -Command & """"C:\P…
PS> dir \\リモートのPC\巨大ファイル ディレクトリ: \\xxxx\xxx\bin\logs Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2022/01/12 20:25 68290811 巨大ファイル.log サーバのログの監視などでしょっちゅう状態を知りたいときな…
立ち上げたExcelにカレントディレクトリのファイル名一覧を書き出す ($sheet = (New-Object -ComObject excel.application).workbooks.add().sheets.add()).Application.Visible=$true $r = $sheet.range("a1") dir -Name | foreach { $r.value = $_; $r=$r.…
powershellの練習がてら作成。 コメントや空行などを維持したままで更新してくれる。 <# .SYNOPSIS iniファイルへの変更指示をコマンドラインから受け付けて処理する .example .\iniUtil セクション名1.パラメータ1=値1 セクション名2.パラメータ2=値2 スペ…
Aというクラスがあるとして class A { [string]$s1 }.Net のList型を用意 using namespace System.Collections.Generic $alist = New-Object List[A]状態を見ると、List型にはAddというメソッドがあり、 A型を1つ入れられることが分かる。 $alist.GetType()…
ショートカット cmd.exe /c powershell -noexit \app\scripts\toExcel2.ps1 を作り、そのショートカットへ複数フォルダをドラッグアンドドロップすると、 フォルダ毎別シートになって、ファイル名一覧をシートに書き込む。 拡張子が.DATまたは.csvのものは内…
これがあるとき UnicodeString s = "xxx" これはできるのに UnicodeString where = " abc" + s + " = :" + s; これは出来ない UnicodeString where = "and " + " abc" + s + " = :" + s; 理由:char*とUnicodeStringをつなぐときには+演算子と自動変換が inc…
https://xxxx.sharepoint.com/sites/xxxxxxxxxxxxxxxx/Shared%20Documents/Forms/AllItems.aspx?id=%2Fsites%2Fxxxxxxxxxxxxxxxxxxxx&viewid=xxxxxxxxxxxxxxxxxこのようにsites という言葉が2回でてくるパターンの場合、ブラウザのアドレスバーからURLをコピ…
Excel関連の処理のある、C++Builder 4.2 のプロジェクトをbcc32(従来のコンパイラ)からbcc32c(Clang)へ移行するときの話。 C++Builder -> プロジェクト -> オプション -> C++コンパイラ -> "従来のコンパイラ" を外した場合、Clangによるコンパイルに切…