プログラミング

VBAで数値を丸める

たまに実装しようとすると忘れるので備忘録的に。 '******************************************************** '関数ID :RoundDown '説明 :数値を切り捨て丸める関数 '引数 :roundNum ・・・ 丸める数値 ' :digit ・・・ 桁数(少数以下) '戻り値 :丸められた…

VBAで日付に関する実装

日付に関する実装をいつも微妙に忘れるので、備忘録的に残しておきます。 日付の文字列(例 20090127)を日付型に代入する Sub example1() Dim strToday As String Dim dateToday1 As Date Dim dateToday2 As Date strToday = "20090127" dateToday1 = CDate(M…

VBAでRight$関数とRight$関数の違い

あるVBAの実装方法で「Right$」とあって意味が分からなかったので調べたら、「Right」は戻り値がVariant型、Right$はString型という事でした。 なるほどという感じです。 ちなみに「Left$関数」、「Dir$関数」も同じ意味です。

環境変数を利用してVBSからMS-DOSコマンドを実行する

バッチファイルでは「%環境変数名%」と記述すると、環境変数に設定された値を取得することができます。 コマンドインタープリタの名称は「ComSpec」という環境変数から取得できます。 すべてのOSで必ず設定されているので汎用的に利用する事が出来ます。 普…

VBSでおもしろMsgBox

こちらでMsgBoxのおもしろ画像を見つけたので、 職場で僕が作ったスクラッチのVBSのツールに仕込みました。 確認のダイアログが下記のように表示されます。 僕がいるチームしか使わないツールなので、バレても大丈夫です。 使用した人のリアクションが楽しみ…

VBSで疑似「continue」を実現

今日ネットでVBS関連の情報を収集してたら、ちょっとヤラれた実装例があったのでご紹介。 VBScriptには「break」相当のExit Do/Exit Forはありますが「continue」相当がありません。 そこで、擬似「continue」です。 ネタ元はこちら Forに対して、1回ループ…

TeraTarmマクロでログインしてユーザーを切り替える

DBサーバーにログインしてデータをExport/ImportするTeraTarmマクロを組んでいました。 セキュリティの強化の為、ログイン可能なユーザーを統一する事になりました。 そこでマクロの中で「*1su」コマンドを使用して、ユーザーを切り替える改修が必要になりまし…

VBSで正規表現を使用してテキストの文字列を置換する

普通に置換しても良いのですが、この前のエントリで正規表現を勉強したので 正規表現を使って、少し汎用的に置換出来るようにしました。 test.txtというテキストファイルに記述した「Test」という文字列を「New Test」に置換する場合 Dim objFile ' 対象ファ…

VBSでフォルダを圧縮してリモートで移動する

デプロイをする時に作成したモジュール(WARファイルやJARファイル)を バックアップ用のPCにVBSでリモートで移動しています。 作業した日付のフォルダを作成し、その下に時間フォルダを作成して移動しています。 そこで複数のJARファイルがフォルダに入ってい…

VBSでPINGコマンドを実行する

バックアップをVBSで実行しているのですが、 2つの作業環境がある場合に、違う環境で実行すると残念な結果になります。 そこで実装の中にPINGコマンドを実行して ネットワークがどちらにあるか事前にチェックする事にしました。 Dim objWMIService ' Windows…

VBEでVBAを実装する時にマウスでスクロールを可能にする

VBAを実装する時は、Excelにデフォルトで入っているVisual Basic 6.0 IDEを使います。 ただ1つ困るのが、マウススクロールイベントがないことです。 実装する時に、毎回スクロールバーをマウスでつかんで上下するのはかなり面倒です。 そこでVBEでもマウスホ…

JSのプレゼンテーションツール「S6」を使ってみた

僕の会社では不定期に勉強会があるのですが、 そこで発表する時にパワーポイント以外でプレゼンしたいと思い、 IT戦記のid:amachangさんが開発したプレゼンテーションツール「S6」でスライドを作成することにしました。 それで作ってみた資料はこれです。 今回…

引数を使ってBatの条件分岐をする

2つの別のバッチをマージする事にしました。 仮にA.batとB.batだったとしてマージしたバッチをAB.batとします。 今まではA.batを実行して、B.batを実行していました。 但しB.batはA.batの処理の間に実行します。 これらのバッチはそれぞれ実行する前に確認の…

VBSからVBAを実行してみる

VBSとVBAでそれぞれツールを作っていたのですが、 両方とも一度に実行したいと思い、VBSからVBAを呼ぶ事にしてみました。 VBSでVBAのマクロ呼び出しのボタンを押下し、保存するところまでを行います。 ExcelのApplicationオブジェクトである「Excel.Applicat…

コマンドプロンプトから標準出力とエラー出力の取得方法

先輩がAntでコンパイルのタスクを実装し、batで実行していました。 その中の処理で、コンパイルエラーの場合にのみ、エラー内容をログ出力するようになっていました。 ちょっと素敵な実装と思い、調べてみました。 参考にさせて頂いたのはこちらのサイト MS-…

batでクラスファイルの日付を調べる

デプロイの作業でJavaファイルをコンパイルしたかどうかを調べる為に batのバッチパラメータを使い、WARファイル作成前に日付を表示する事にしてみました。 いつものごとく参考にさせて頂いたのはこちらのサイト コマンドプロンプトを使ってみよう! -バッ…

SVNコマンドで高速に作業する

開発言語がJavaでSubversionでバージョン管理をしている場合 EclipseのプラグインにSubclipseを入れて作業するのが多いと思います。 SVN更新する時は、プロジェクト毎に「右クリック」 ⇒ 「チーム」 ⇒ 「更新」みたいな感じで作業しますが リポジトリにコミットさ…

VBS専用のエディタ

VBAをゴリゴリ書くときは、Excelに入っているVisual Basic Editorがあります。 補完もしてくれるし、キーワード毎に色分けもできます。 OfficeはデフォルトでPCに入っているのでまあ困らない。しかし、VBScript(以下VBS)を書くときは、いまいち良いツール(エ…

build.xml以外のxmlにAntのタスクを書いて、batファイルで実行する

普通Antのタスクはbuild.xmlにゴリゴリ書いて、 batファイルで実行する時は「call ant タスク」みたいな感じで実装します。今日、xmlであれば実行できる方法を見つけました。 xmlファイルであればなんでも良いです。 ネーミングはおまかせします。 Antのタスク…

batファイルの実行パスを取得する

Antでタスクを組んでbatファイルで実行する時には ワークスペースのフルパスを直書きしていました。問題だったのはEclipseから実行するとeclipseフォルダがカレントになる事でした。 どこから実行しても相対パスを取得できれば・・と調べたらありました。 コ…