備忘録

CSVデータの数値の罠

CSVデータの数値に注意! CSVデータ、よく使いますよね。 使う中でCSVの持つ数値の扱いに気を付けなければならないことがあったので、備忘録としてまとめました。 CSVファイルのデータを取り込む 以下の画像の通り、「製品データ.csv」と「製品データ取得.xl…

配列のデータを並び替えて配列に格納し直す

配列の並び替えはしんどい 配列のデータも並び替えはできるらしいのですが、しんどい(;^ω^) なので、いったんWorkSheetに配列データを格納して、並び替えたデータを配列に格納する方法を記述しました。 Public arrMy, arrMy2, rangeMy As Range Sub 配列→Ran…

セルの塗りつぶされた色のRGBを求める方法

これ↓↓ Sub test_RGB() Dim myColor As Long Dim R, G, B myColor = Range("A1").Interior.Color R = myColor Mod 256 G = Int(myColor / 256) Mod 256 B = Int(myColor / 256 / 256) Debug.Print R, G, B End Sub 微妙な色で塗りつぶされた色もこれで、RGB…

複数のSheetに一括で同じ値を代入する方法

複数Sheetの同じセルに一括で値を代入する方法。 マニュアル操作では、Sheetを複数選択していれば同じセルに値が一気に代入するされます。これをVBAで記述すると以下のコードになります。 Sub Sheets_Select() Worksheets("Sheet7").Select Worksheets("Shee…

複数のSheetに一括で同じ値を代入する方法

複数Sheetの同じセルに一括で値を代入する方法。 マニュアル操作では、Sheetを複数選択していれば同じセルに値が一気に代入するされます。これをVBAで記述すると以下のコードになります。 Sub Sheets_Select() Worksheets("Sheet7").Select Worksheets("Shee…

指定した文字数の後に空白を入れる。

方法1 Sub stringTest() Dim myString As String * 18 myString = "bimori" Debug.Print myString End Sub 処理結果↓↓ この場合、"bimori"以降18文字までは空白が入ります。 しかし、この方法では文字数が変わったときに対応できません。 方法2 Sub string…

セル内に斜線が入っているか判定して処理する。

セル内に右下がり斜線が入っているか判定する処理。 セルの書式設定で斜めに斜線が入っている場合処理をする方法はないものか?と考えて、ググったらありました。 ここでは、セルA6に右斜め斜線(実線)が入っている場合に、赤でセルを塗りつぶす処理です。 …

サブフォルダーのファイルを取得するVBA

サブフォルダーのファイルまで取得するVBA 仕事が超絶楽になるはずだよ! 目次 1 作成の経緯 2 コードを記載 3 感想 1 作成の経緯 ドキュメントの一括作成を迫られたのでw 2 コードを記載 以下のようにファイルA、B、C、Dのフォルダがあります。 以…

UserFromのコマンドボタンクリックイベントを、ENTER、ESCキーに登録する。

ENTER、ESCキーに処理を登録する 知った時の気持ち↓↓ 目次 1 用意するUserFrom画面 2 コマンドボタンクリックイベント処理コードを書く 3 ENTER、ESCキーを押したときに処理されるように登録するコード 1 用意するUserFrom画面 OKを押したら、Msgboxが出…

もっと知りたい「動的配列」

目次 1 値を保持する「ReDim Preserve」 2 動的配列の弱点 3 弱点を補うユーザー定義型(Type) 4 クラスモジュールの自作コレクションを使う 5 終わりに… 1 値を保持する「ReDim Preserve」 配列の宣言については過去記事を記載しております。 bimori…

エクセルVBA、「配列の宣言」

目次 1 配列のメリット 2 配列の宣言は2つある! 1)静的配列 2)動的配列 3 静的配列、動的配列どちらが便利か? 4 1次元配列と2次元配列 1)2次元配列の宣言(静的配列) 2)2次元配列の宣言(動的配列) 5 セルデータから簡単に配列を作る…

ステータスバーを表示する方法

ステータスバーを表示する 以下の画像の通り、処理に時間のかかるマクロを動かす場合ステータスバーに処理状況を表示することがあると思います。 ステータスバーを処理方法をまとめたことがなかったので、調べてまとめました。 ステータスバーを表示するコー…

リストオブジェクトへの追加、削除する方法

テーブルの作り方 上の画像のようにリストを作成し、ショートカットキー「Ctrl + T」を押しテーブル化する。 画像の蛍光線部「デザイン → テーブル名を{柱DB}とする」。これでテーブルが完成。 Enumを使ってイミディエイトウィンドウに表示する。 Option …

特定のフォルダ内からすべての「サブフォルダ名」、「ファイル名」を取得する方法

FileSystemObjectを使って、特定のフォルダからすべての「サブフォルダ」、「ファイル」を取得する 最終更新日:2022/7/1 以下のようなフォルダが存在します。 フォルダがA、B、C、Dの4つ、 ファイルがDSC_0002.JPG、FSO.xlsmの2つあります。これをFSO.xls…

Book内に特定の名前のSheet名が存在するかスマートに調べる方法

Book内に特定の名前のSheetが存在するか調べるには… 私が最初に思いつくのは、For each in Sheetsで、シートをループして特定の名前があるかを調べるです。 Sub Sheet名が存在するか調べる() 'Sheetに”2020年12月”があるか調べる。 For Each sh In Sheets sh…

ジャグ配列の中身をすべてを、イミディエイトウィンドウに書き出す。

ジャグ配列とは… 要素数の異なる配列のことです。(例) 配列(2) 配列(0)(0),(0)(1) 配列(1)(0),(1)(1),(1)(2) 配列(2)(0),(2)(1),(2)(2),(2)(3) 配列(0)は2つの要素を持つ。 配列(1)は3つの要素を持つ。 配列(2)は4つの要素を持つ。このように、要素数…

複数の改行するスマートなコード

結論 Sub 改行() '普通の書き方 MsgBox "かず" & vbCrLf & vbCrLf & "やん" 'スマートな書き方 MsgBox "かず" & String(2, vbCrLf) & "やん" End Sub 処理結果は同じ 「& vbCrLf & vbCrLf & 」ではなく、「& String(2, vbCrLf) &」と記述することにより、2…

SQL文で他のBookのデータを更新する。

目次 1 閲覧対象者 2 得られる効果 3 設計 4 感想 1 閲覧対象者 データを更新するエクセルBookと、データを蓄積するBookを別けたい方(いわゆるDBファーストです)。 更新用Bookからベタ打ちのSQL文を発行するだけなので、ADO接続、SQL文の書き方がよく…

Sendkeysの{ENTER}が効かない理由

{ENTER}はテンキーのENTERである! Webアプリケーションの入力作業が面倒で、Excelに入力用データを作成し、Sendkeysで自動入力できるようなマクロを作りました。 汎用機時代は、ちゃんと動作していたのですが、システム換装によりWeb化した後、「TAB」「E…

エクセルVBA備忘録 マルチページコントロールをコードから作成する。

家計簿の野菜入力を色別にしたい エクセルで家計簿を作っていて、野菜、肉、魚などをコンボボックスから選んで入力しています。3か月ほど使うと問題がでました。野菜の項目が増えすぎました。画面に収まらないほど大量に…。こんなに種類あるんですね。「食…

リストデータの1行おきに挿入する。また、1列おきに挿入するサンプルコード。

DBのように使っているリストデータの1行おきに挿入する。 実行前 実行後 1行ごとに挿入されている。 コード Sub 一行毎に挿入() Dim i As Long LRow = Cells(Rows.Count, 1).End(xlUp).Row For i = LRow To 1 Step -1 Rows(i).Insert Next i End Sub こ…

基本操作 セルの範囲指定方法

さまざまなセル指定方法 同じセルを選択するにもいろんな書き方有 いろいろ自動化するにもまずはセル範囲指定方法を知っておかなくてはならない。 例えば、「A1セルを選ぶ」にしても書き方は3つほどある。 基本を押さえるのが大事! 選択範囲指定いろいろ…