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のクラスの使いどころが分からないという話。 今日もちょっとした一言から良いお話がいっぱい聞けたので整理しておきました。
今回はExcelブック単体でVBAを疑似マルチスレッド化できるか実験を行い、見事成功したので紹介します。 きっかけ コード 結果 ちょっとだけ解説 Application.OnTime について まとめ きっかけ 最近(私の中で)話題な「Excel Piano」開発者のA氏がこんなツイートをしていました。 VBAで並列処理するのってどうやるんだろ… VBS呼び出せばいいけどWindows APIの呼び出しがExcel経由でやらんなんくてなんか面倒。 いいやり方知ってる人いたらリプください— あっさん (@Kabura_net14831) 2019年3月26日 彼の言うとおり VBScript を使うことで、並列処理をすることは可能ですが、いろいろと問題があります。 VBSで実現できる並列処理は、疑似マルチスレッド(実際にはマルチプロセス)である。 VBSはExcelのVBEの中でデバッグが
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く