You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
コンテキストメニューまたは、メニューバーの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
GenderEstimate.bas �M� �U 0�� �U Public Function GenderEstimate(ByVal strMK As String, Optional strMF As String = "") As String GenderEstimate = "" strMK = Replace(Replace(Replace(strMK, " ", ""), " ", ""), "「", "") strMF = Replace(Replace(StrConv(strMF, vbHiragana), " ", ""), " ", "") 'デバッグ用。こいつをブレークポイントに持ってきて挙動を確認する 'If strMK Like "理世" Then ' Debug.Print strMK 'End If Select Case True 'ひらがなが2文字以
データベースとして使いたい表なのに、結合セルだらけで使い物にならない。 そんなときに、VBAで作ったマクロを起動するだけで、 結合セルを解除して 元々入っていた値を、結合されていたすべてのセルに入力する マクロを紹介します。 ソースコードを貼り付けて実行するだけなので、1分もかからずに、表を整形できます。 ソースコード 下記を、標準モジュールに貼り付けて実行してください。 Sub UnmergeCellsAndFillValues() Dim rng As Range For Each rng In ActiveSheet.UsedRange If rng.MergeCells Then With rng.MergeArea .UnMerge .Value = .Resize(1, 1).Value End With End If Next End Sub 解説 For Eachループ F
Excelでのセル範囲の名前の設定と削除 セルはA1形式やR1C1形式での座標で表されますが、それとは別に、セル範囲に「名前」を付けて座標の変わりに使うことができます。 Excelでの名前を付ける手順は、名前を付けたいセル範囲を選択して、数式バーの左にある「名前ボックス」に任意の名前を入力します。 名前を削除したい場合は、数式タブ→定義された名前→名前の管理をクリックすると、名前の管理ダイアログが表示されるので、対象の名前を選択→削除ボタン、となります。 以降ではVBAで同じ操作を行う方法を紹介します。 RangeオブジェクトのNameプロパティは、Rangeオブジェクトに指定したセル範囲の名前の取得や設定を行うことができます。 ここで付けた名前を利用することで、セル範囲を参照する際にA1などのセルを指定せずに名前で指定することが可能になります。 名前の設定にはNameプロパティをそのまま
はじめに 普段VBAはさわらないのですが、たまにエクセルの資料から値を抽出してJSONファイルつくりたいなぁと思うことがあります。 毎回やり方を忘れるので備忘録として。 目指すのは納品とかは考えずにあくまで自分の作業を楽にするためのやつです! プロシージャ プロシージャはたぶん関数みたいなやつです。(実行できる処理の単位?) 下記2つがあります。 Subプロシージャ Functionプロシージャ 違いは戻り値が設定できるかどうかかと思います。(あんまわかってない) とりあえず私は下記のように Function に細かい処理を書いて Sub で Function を呼び出すように実装してます。 Sub Test() Call ProcessA() Call ProcessB() End Sub Private Function ProcessA() 'なんか処理 End Function P
時々話題になるVBAのクラスの使いどころが分からないという話。 今日もちょっとした一言から良いお話がいっぱい聞けたので整理しておきました。
※この記事は【VB6・VB】古いコードのリプレース のシリーズその1です。 その1 コントロール配列(VB6) まあVB6ではよくあるパターン。むしろ無いほうが珍しい。 VB6には表みたいな機能がろくになかったので、表のようにラベルやテキストをコントロール配列でぺたぺた貼ってぐるぐる回して処理してたんですよねー。 対処法:手動で配列にセットして処理する。 ※以下、"Button1","Button2","Button3"という名前のボタンコントロール3つが画面で宣言されており、 これをコントロール配列として扱いたいとする。 Private BtnArray() As Button 'セットする配列 Public Sub Form1_Load() Handles Me.Load InitializeComponent() '順番を考慮して配列にセットする必要がある BtnArray = {B
以前VB.netで作成した簡単なアプリを、C#に変換してメンテできれば……と最近思っていました。 色々探した結果、Visual Studio 2015に、変換プラグインがあるということだったので試してみた結果を書いていきます。 環境 悪かった点 Formのデザイナ(xxx.Designer.cs)は、エラーによりデザイナを開けない イベントハンドラ系関数は、エラーのコメントが書かれている。 Split()が対応されなかった 配列は軒並み残念 Asで型指定していないと、objectとして変換される よかった点 あとがき 環境 Visual Studio Community 2015 LanguageConverter 悪かった点 まずは悪い方から。 実際に変換してみて「ココはダメだったな…」というところを挙げていきます。 修正したポイントは、そこも書いていきます。 Formのデザイナ(xxx
C#のコードをVB.NETへ変換する、VB.NETのコードをC#へ変換するここでは、C#のコードをVB.NETのコードに変換してくれるツールや、逆にVB.NETのコードをC#のコードに変換してくれるツールを紹介します。また、それ以外の言語の変換に便利なツールも紹介します。ここでは無料で使用できるものだけを紹介します。 オンラインのサービスDeveloper FusionDeveloper FusionのCode Convertersで、コード変換ツールが利用できます。Web上で変換できます。 変換できる言語は、2015/6/15の時点で、変換元がC#とVB.NET、変換先がC#、VB.NET、Python、Rubyです。 SharpDevelopを基に作成されているということです。 Convert C# to VB.NETConvert C# to PythonConvert C# to
はじめに これは、Visual Basic Advent Calendar 2018の3日目の記事となります。 Visual Basic と C# の相互変換する方法について書いていきます。 VB6.0からVB.NETに変換 マイクロソフトは、旧VB製アプリケーションのVB.NETへの移行を容易にするアップグレードウィザードを、Visual Studio 2008までは実装しましたが、Visual Studio 2010 以降からは廃止しました。 よって、Visual Studio 2008 で変換したものを Visual Studio 2010 以降で変換するという二段階のアップグレードが必要になります。 Visual Studio 2008 Express Edition CD(DVD)イメージ版のダウンロードはまだ可能でした。 Visual Studio 2008 Express E
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)を適用することでこの不具合は発生しなくなります。
今回はExcelブック単体でVBAを疑似マルチスレッド化できるか実験を行い、見事成功したので紹介します。 きっかけ コード 結果 ちょっとだけ解説 Application.OnTime について まとめ きっかけ 最近(私の中で)話題な「Excel Piano」開発者のA氏がこんなツイートをしていました。 VBAで並列処理するのってどうやるんだろ… VBS呼び出せばいいけどWindows APIの呼び出しがExcel経由でやらんなんくてなんか面倒。 いいやり方知ってる人いたらリプください— あっさん (@Kabura_net14831) 2019年3月26日 彼の言うとおり VBScript を使うことで、並列処理をすることは可能ですが、いろいろと問題があります。 VBSで実現できる並列処理は、疑似マルチスレッド(実際にはマルチプロセス)である。 VBSはExcelのVBEの中でデバッグが
Framework 標準印刷処理 で使用している PrintPreviewDialog ですが、失礼なくらいしょぼいツールバー。 実際は、Form に、PrintPreviewControl を実装して自作すべきなのですが、 とにかく時間の無い場合はできあいで済ませたいです。 最低限、印刷ボタンでプリンタ選択ぐらいはしたいので変更しました Private prtDialog As PrintDialog = Nothing ' ****************************************************** ' 印刷プレビューの初期処理 ' ****************************************************** Private Sub preview_Load(ByVal sender As System.Object,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く