サンプルコード
Excel/Wordオフィス製品のTipsまとめへ Excel関数で,シート上の行データの重複を検出し,削除したい。ここで,重複しているかどうかの判定は,複数の列データを参照したい。 このような「重複検出」の処理を,VBAマクロを使わずにシート関数だけで実現する…
WSHなどのWindowsプログラミングでよく使う「CLSID」「ProgID」について解説。 WSHで,CreateObject() の引数を不思議に思ったことはあるだろうか?"InternetExplorer.Application" とか "Excel.Application" など,別のアプリ(自動操作したいCOMオブジェク…
UWSCマクロでIEを自動操作する際に,「開発者ツール」を自動操作し,自由にユーザエージェント文字列を設定してみよう。 UWSCサンプルコード // // UWSCマクロでIEを自動操作するサンプルコード // // ----- 設定項目 ----- // アクセス先のURL target_url =…
UWSCを使うと,WindowsのGUIプログラムやブラウザなどを自動操作できる。その際に,GUIのウィンドウ上で「複数のキーを同時に押す」という処理のサンプルコード。 ショートカットキーを押すには,複数のキーを同時押しする必要がある UWSCでは,KBD()という…
バッチで,ブラウザのUAを改変し,別のブラウザ向けのページを表示させるサンプル。 たとえばIE上で,iPhone向けのWebページを表示させたい。自作プログラムからブラウザを自動操作する際に,スマホ用のページを表示させたいのだ。 バッチで,COM経由でIEを…
Excel/Wordオフィス製品のTipsまとめへ OpenOffice.org Calc の Basic マクロで,配列の実用的な操作方法をサンプルコード付きで解説する。Excel VBAと同じように,配列を自由自在に使いこなせるようになろう。 (1)配列の宣言と初期化・生成のサンプル (…
Excel/Wordオフィス製品のTipsまとめへ OpenOffice.org CalcのBasicマクロで,セル内容が変更(値が書き換え)されたタイミングでマクロを実行するサンプルコード。セル内容の変更イベントをキャッチする簡単な方法がある。 イベントの内容をコーディングす…
Excel/Wordオフィス製品のTipsまとめへ OpenOffice.org Calcのマクロで,ファイルパスをディレクトリパスに変換するコード。文字列処理によりファイルパスを加工し, ファイルが存在するフォルダのフルパスを取得できる。 Sub test1 ' ファイルのフルパスを…
Excel/Wordオフィス製品のTipsまとめへ OpenOffice.org のCalcで,ブックの保存されているフォルダのフルパスを一発で取得する関数のサンプルコード。Excel VBAでの ThisWorkbook.Pathに相当する。 Sub test ' このブックの存在するフォルダのパス Msgbox ge…
Excel/Wordオフィス製品のTipsまとめへ OpenOffice.org CalcのBasicマクロで,テキストファイルに書き込みする一番簡単なサンプルコード。テキストファイルは,ブックと同じフォルダ上に,自動的に新規作成される。同名のファイルが既に存在する場合は,上書…
Excel/Wordオフィス製品のTipsまとめへ OpenOffice.org CalcのBasicマクロで,シート内容をCSV出力するサンプルコード。特定のシートの行・列領域を指定し, ブックと同じフォルダ上にTSV(タブ区切りCSV)形式で保存する。シート全体をCSV変換するのではな…
SOXは,wavファイルを編集操作するコマンドラインツール。フリーソフトで,簡単に使える。WAVの再生速度や音程を一発で変更できる。 SOXはLinuxの世界では有名だが,Windows上でもCUIで利用できる。CUIなので,コマンドプロンプトから実行するだけでなく,バ…
Webページを「コピペ不可能」にするためのテクニックまとめ。マウスで右クリックしてコピー,Ctrl + C で無断転載,などの行為を禁止できる。CSSやJavaScriptでの手法を網羅した。 (1) 右クリックの禁止方法 (2) コピーイベントを禁止する。Ctrl + C …
HTML5のJavaScriptで,Webページ内でCSVファイルを動的に生成してダウンロードする。CSVファイルの中身は日本語で,文字コードはSJIS(Shift-JIS)とする。サーバ側の処理は一切不要で,JavaScriptだけで実装する。 下記URLに,実際に動く動作デモがあります…
Excel/Wordオフィス製品のTipsまとめへ OpenOffice Basicマクロで, Calcのセルの座標を,「A1」などのアドレス表現(セル番地)に変換するサンプルコード。つまり列番号をアルファベットにするということ。 Excel VBAだと セル.Address というメソッドだけ…
Excel/Wordオフィス製品のTipsまとめへ Excel VBAでいう End(xlDown) ・ End(xlToRight) を, OpenOffice.org CalcのBasicマクロで実現した。再利用可能なコードを下記に示す。 ' シート上の「データが存在する一番下」や「一番右」を ' 取得するサンプル Su…
Excel/Wordオフィス製品のTipsまとめへOOo Calcで,シート内の任意の列をソートするマクロのサンプルコード。 ' 列をASCでソート Sub MySortAsc ' ソートを実行するシート番号と列番号 sheet_index = 0 column_index = 0 ' ソート範囲 sort_range = "B7:X561…
Excel/Wordオフィス製品のTipsまとめへ OOo Calcで,セル内のHYPERLINK関数だけでマクロを実行できる。下記のように記述すればよい。 =HYPERLINK("vnd.sun.star.script:Standard.Module1.Main?language=Basic&location=document";"クリックしてね") これだけ…
Excel/Wordオフィス製品のTipsまとめへ ExcelやCalcなどの表計算ソフトで,「大量のセル参照」をいちいち書くのが面倒な場合がある。INDIRECT,ADDRESS,ROW の3つの関数を組み合わせて,簡単にセル参照できる。この組み合わせは,よく使うので暗記しておこ…
WSHのSendkeysメソッドで,日本語の文字列を, 文字化けせずに正確に自動入力する方法。 まず,Windows Vista以降であれば,コマンドプロンプトでclipコマンドを使える。 echo ほげ| clip ↑これで,クリップボードに日本語のテキストが格納される。あとは,CT…
BATで,コマンドの実行結果をログに保存する時に, ログのファイル名に現在日時を含める。 @echo off SET hour_with_space=%time:~0,2% SET timestamp=%date:~0,4%_%date:~5,2%%date:~8,2%_%hour_with_space: =0%%time:~3,2% 記録したいコマンド > log\out_%…
「このバッチが置いてあるフォルダを,まるごとバックアップ」というバッチ。 rem カレントフォルダをバックアップする rem バックアップ先フォルダ名 SET DIR_TO_ROOT=D:\tmp\work rem 日時情報の入ったフォルダを作成 SET DIR_TO=%DIR_TO_ROOT%\bu_%date:~…
いまやIEやFirefoxで標準的に利用可能な,配列の便利メソッドであるArray.prototype.reduceだが,これをWSHでも使えるようにしたい。 firefoxのJavaScriptの便利関数,reduceの使い方とサンプルコード。配列の全要素を順番に使い,一つの値を生成。Rubyのinj…
JavaScriptの配列関数は,どんどん便利なメソッドが増えている。その中に,「配列の全要素を順番に使い,1つの値を生み出す」というメソッドがある。 それが Array.prototype.reduceだ。Rubyでいうとinjectメソッドにあたる便利関数。 サンプルコードを見て…
「モバイルルータとWifiを使いこなす」まとめTOPへ 無線LANをいったん無効化(切断)して,再度つなぎなおす。この操作を自動化する。 バッチのコード 下記のバッチファイルを,右クリックして「管理者権限で実行」すればよい。無限ループになっており,18…
こうなる: <body> <script> // 1から100までの素数を表示するプログラム // 全体を一つの文として宣言 var // 再帰ロジックによる // 素数判定関数 isPrime = function( n ){ return makeDivRecursive( n, Math.floor( Math.sqrt( n ) ) ); } , // ある数が割り切れるかど</body>…
Excel/Wordオフィス製品のTipsまとめへ 日付の間隔を求めるVBAサンプルコード。けっこう簡単に,日数を計算できる。 Sub main() ' 2つの日付を比較 d1 = CDate("2001/01/01") d2 = CDate("2015/12/31") MsgBox DateDiff("d", d1, d2) ' d2 - d1 MsgBox Date…
Excel/Wordオフィス製品のTipsまとめへ Excelの関数で,条件を満たすセルだけに番号をふる方法。(=ナンバリング)条件を満たさない場合や空白セルの場合は,番号を付けないでスキップする。 こういう連番を振りたい場合,VBAマクロを使わないで,関数だけ…
Excel/Wordオフィス製品のTipsまとめへ MONTH(TODAY()) でOK。 TODAY() という関数で,現在の日時を表すシリアル値が返る。 取得されたシリアル値を MONTH() 関数の引数に渡せば,日付情報の中から月の値だけを取り出して,1から12までの間の値で表示して…
HTML上で,あるDOM要素が複数のクラス名を持っている場合,classNameプロパティの呼び出しは,複数のクラス名を文字列として取得する。 HTML上のclass文字列がそのまま文字列として返る 文字列の様子は,htmlに書かれているまま。複数のクラス名の間に半角ス…