コンテキストメニューまたは、メニューバーのRubberduckメニューからRefactorを実行することでリファクタリングが行えます。 下記の例では関数名を変更しています。 他にも引数の削除や順番が行えます。 テスト用のモジュールとメソッドの追加方法 Rubberduck→Unit Tests→Test Moduleでテストモジュールを追加、Rubberduck→Unit Tests→Test Methodでテストメソッドを追加します。 テストモジュール中の「'@TestMethod」というコメントが記載された関数がテストメソッドとなります。 テスト実行例 まず以下のようなテストモジュールを用意します。 Option Explicit Option Private Module '@TestModule '@Folder("Tests") Private Assert As Object
プログラミング言語ランキング世界7位※のVBAが他の言語と比べていかに優れているのか分からせていこうかと思います。「え?Excelとか扱いやすいとこでしょ?はい、論破」とか言わない。 ※TIOBEで毎年公開されているランキング(2012年現在) http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html まずは脳内設定でVBAの従姉妹であるVBScript(JSとは幼馴染) VBSっていうとワンクリックのバッチとかHTMLで<script>したりとか色々と捗るぞってイメージ。あとWScript先輩オッスオッスって感じ。 VBAもVBSもVB派生なんで文法はほぼ一緒。ってことはVBAコピペすればVBSいけんじゃね?うはwww俺天才www→…私ってほんとバカな人は俺だけじゃないはず! そんなわけでいってみましょう 第1位 外
2019年8月14日に配信されたWindowsUpdateを適用すると、Windows10全バージョンにて、VBVisual Basic 6 (VB6)で作成したアプリケーション、Visual Basic for Applications (VBA)で作成したマクロ、Visual Basic Scripting Edition (VBScript)で作成したマクロやアプリケーションが応答しなくなり、『invalid procedure call error.』と表示される場合があるという不具合が発生していました。 2019年8月17日以降に配信された下記の『修正KB』(またはそれ以降のKB)を適用することでこの不具合は発生しなくなります。
クロスプラットフォームで開発できる.NET Coreの基礎から開発実践までが学べる入門連載。6回目はクラスライブラリプロジェクトをNuGetパッケージとして参照できるように、作成と発行を行う。 ← 前回 連載 INDEX 次回 → NuGetパッケージとnuget.org NuGetパッケージ 前回はクラスライブラリプロジェクトをプロジェクト参照として別のプロジェクトから参照した。プロジェクト参照の場合、ソースコードを直接参照するため、ソースコードが必要であり、ビルドのたびにライブラリ側のビルドも行われる。ビルド後のバイナリのみを参照したい場合、ビルド成果物である.dllファイルのみを参照するという方法があるが、.dllファイルのみを参照すると、クラスライブラリ自身のバージョンや、クラスライブラリが必要とする別のライブラリのバージョンの管理を手動で行う必要がでてくる。 そこでNuGetパッ
今回はVBAユーザー必見、応答なしになったExcelでVBAを確実に中断させる方法(仮称:ちゅんちゅん奥義)を紹介します。 皆さんはVBA或いはマクロの実行中に、無限ループを起こしてしまい中断できないので「泣く泣くExcelを強制終了させた」なんて経験はありませんか? 実はWindowsの裏技的な方法で、VBAを止めることが可能です! 一般的に知られているVBAの中断方法 Excelが応答なしになる原因と防ぐ方法 応答なしの再現プログラム DoEventsで応答なしを防ぐ DoEventsの発生頻度を調整する 効率的なコーディング方法を知る 応答が停止してしまったVBAを確実に中断させる方法 VBAを確実に中断させる 中断できるようにする条件 タスクバーの設定を変える 1ステップに負荷をかけすぎない 自動的なマクロの有効化を止める はてブコメント返し まとめ 一般的に知られているVBAの中
VBA への障壁¶ 2012年初までずーっとVBA を避けていた大きな3つの理由が自分にはありました。 バージョン管理が難しい ソースコードがバイナリ内部に存在し、異なる版の間での差分管理はほぼ不可能 外部からの参照引用も非常に難しい。 共有ライブラリ化が難しい 複数ファイルで利用している同じ内容のモジュールの保守や同期が難しい。 エディタが選べない 好きなエディタ(vi)でソースコード編集ができない。 これは VBA である限り仕方ないのだろうと思い、ならば、Perl の Win32:API から叩く方がいいよね、と思っていた時代が自分にもありました。 (といっても、IEの自動化実行くらいしかやってませんでしたが、) 救世主 発見!!¶ あるとき(2012年2月中旬)、'vba モジュール 共有' で Google ってみると、 id:language_and_engineering さ
はじめに スタートトゥデイ工務店 Advent Calendar 2016 13日目の記事です。 本記事では実行可能形式ファイルを作るほどでもない、 ちょっとした処理を書きたいときに便利なVBScriptについて書きます。 VBScriptとは WindowsScriptHostを利用したWindows上の標準スクリプト言語で、 拡張子が[vbs]のテキストファイルを作成すればダブルクリックするだけでも実行できます。 実行ファイルを作成する必要もなく、テキストエディタで記述、修正できるのでどんなWindowsPCでも 環境を準備することなく始めることができます。(2016年12月現在) そんな手軽なVBScriptですが、本稿では少し深く使い込んでみたいと思います。 WebAPIに対して、非同期で通信する WinHTTPの機能を利用することができるので、WebAPIに対して非同期での通信を
Platform Compatibility Analyzerを使用すると、クロスプラットフォームでの互換性に問題がある.NET APIなどをその場その場で見つけてくれる。 連載目次 Platform Compatibility Analyzerは、クロスプラットフォームでの互換性に問題がある.NET APIや使用が推奨されていない.NET APIを見つけてくれるツール。本稿執筆時点(2017年11月6日)ではαバージョンであり、NuGetパッケージとして提供されている。 .NET Frameworkは誕生から既に10年を超えるフレームワークであり、より高度な機能を持つAPIが誕生すると、それらのAPIで古いAPIが置き換えられるという歴史を繰り返してきた(例えば、HttpClientクラスはWebClientクラスとHttpWebRequestクラスを置き換えるものだし、ArrayLis
概要 この記事ではVisualStudioインストール時に導入されるMsTestの使用方法について解説する。 参考: 単体テストの基本 https://msdn.microsoft.com/ja-jp/library/hh694602.aspx 環境: VisualStudio Community 2013 簡単なテストプロジェクト 1.VisualStudioにてテストプロジェクトを追加する。 2.UnitTestを記述する。 using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace UnitTestSample { [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { int exp = 10
ここで記述する内容はあくまでガイドライン、指針の案にすぎない。この規約を守るためにコードを作るのでなく、よいコードを作るためのガイドラインにすぎない。このガイドラインがよいコードを作るのに障害になる場合は、ガイドラインを変えるか、ガイドラインを使用しない。 つまり、このガイドラインは必要に応じて、変更されることがある。 もし、ガイドラインを考える場合、VB6の規約が参考になる。 Visual Basic Coding Conventions 宣言について 変数の宣言を強制する モジュールの先頭に下記の構文を記述して型の宣言を強制すること。 この宣言は下記の手順で自動で作成することもできる。 【ツール】→【オプション】 【編集】のタブを選択 【変数の宣言を強制する】をチェックする。 理由 変数名の記述ミスがあった場合、コンパイル時にそのミスを検知できる。 暗黙の型は使用しない VBAで変数の
Visual C++の場合 バージョン番号を定義するためのファイルを作成します。そしてこのファイルに対してSubWCRevでキーワードを置換して、たとえばversion.hというファイルを作成します。 #define FILE_VERSION 1, 0, 0, $WCREV$ #define PRODUCT_VERSION 1, 0, 0, $WCREV$ #define STR_FILE_VERSION "1, 0, 0, $WCREV$" #define STR_PRODUCT_VERSION "1, 0, 0, $WCREV$" リソースファイル (.rc) で、このファイルをincludeします。そしてバージョン番号を定義している箇所に先に定義した定数を記述することで、ここに作業コピーのリビジョン番号が反映されます。 ////////////////////////////////
よく自分でちょこっと使うツールやライブラリをC#で作ったりしますが、いつもビルドするときにバージョンを編集しないままずっと同じ、ということはよくあります。 まあ、1回作ってしばらく使って廃棄するようなものだったら気にする必要はないんですが、結構長い間使うものだったり、ちょくちょく修正や機能追加をするようなもの、ライブラリ的に使うようなものだと、何らか識別できるようにしておいた方が良いこともあります。また、自分で作っていて育っていく感覚も得られますので、ちゃんとバージョンを編集しておくのは悪いことじゃないと思います。 .net(C#)でのバージョン設定 バージョンは、プロジェクトのプロパティで設定するか、AssemblyInfo.csを直接編集して行います。 // アセンブリのバージョン情報は、以下の 4 つの値で構成されています: // // Major Version // Minor
仕事でVBScriptを沢山触って色々悩んだことをメモ。 じわじわ増やします。 配列 固定長配列 Dim Array(5)ってやると添字0~5までの 要素数6 の配列ができる。 添字を普通のカッコで括るというのと、思っているよりも要素数が1個多いところに注意。 「要素数5の配列をつくる」じゃなくて「添字5までの配列をつくる」ってことかな。 動的配列 VBSでは、ReDimステートメントを使って配列の拡張ができる。 ただし、ReDimが使えるのは 要素数を指定せずに宣言した配列 のみ。 Array(5)はNGで、Array()はOK。 ただReDimとやると、元の配列の中身は消えてしまう。 配列の中身を残したまま拡張がしたい場合、Preserveをつける。 Dim Fruits() ReDim Fruits(1) Fruits(0) = "Apple" Fruits(1) = "Grape"
基本的な言語仕様 まず確認。VBSでは関数(とサブルーチン)の呼び出し方が3種類ある。 'タイプ1 戻り値を受け取らない場合には引数に丸かっこをつけない。 MyFunction param 'タイプ2 戻り値を受け取る場合には引数に丸かっこをつける。 ret = MyFunction(param) 'タイプ3 Callを使って関数を呼び出す場合には丸かっこをつける。 Call MyFunction(param) ※ただし引数がない場合には丸かっこはつけてもつけなくてもよい。 混乱の原因? では次のコードはどうなるだろうか。 MyFunction(param) (予想に反して)このコードは問題なく実行できる。これがVBSの関数の呼び出し文法をわかりにくくしている原因だと思う。 丸かっこに2つの意味がある 次のコードを見て欲しい。 ret = MyFunction(param1, (param
来年3月で1.5年ほど働いた現場を去る。非常に働きやすい職場だったし、周囲の人間もみんな良い人ばかりだった。残業をそれなりにして520万程度だが収入面も「極めて安い」という訳でもなかった(2015/6追記。やっぱ安い)。だが、ここでの経歴や実績は、「ASP.NET」とだけ書き、フロントサイド(レスポンシブデザイン、レガシーブラウザ、SNS連携)やPL/SQLのバッチ作成などの成果のみを殊更強調し、サーバー側の言語についてはあまり触れないようにしたい。何故かというとVBだから。 「VB.NETはC#の方言」という見方も強くなっている。歴史的に見ればむしろDelphiから産まれて、JavaとC++を反面教師としつつ上面を拝借した2002年に1.0が登場のC#よりも、BASICから連なるVBの方が全然古参だ。求人数的にもVBの方が多いように見える。加えて、言語仕様的にもC#で出来る事は基本的にV
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く