なんだかGoodVibes

日々の勉強メモです。

VBA

【VBA】使用中の範囲を取得する(UsedRange)

VBA

こんにちは。 本日はVBAメモです。 概要 サンプルコード 概要 対象のシートから使用中の箇所(入力があるセルの範囲)を 取得し、行や列の情報を取得します。 使用中の範囲の取得にはUsedRangeを使用します。 サンプルコード Dim ws As Worksheet Set ws = Thi…

【VBA】UTF-8(Bomなし)でファイルを出力する

VBA

こんにちは。 本日はVBAメモです。 概要 サンプルコード 概要 メニューの開発からVisal Basicを開いて ツール -> 参照設定 で以下のチェックを入れておいてください。 「Microsoft ActiveX Data Objects x.xLibrary」 サンプルコード Sub Main() Dim path As…

【VBA】Collectionとクラスを使ってデータを取得する

VBA

こんにちは。 本日はVBAメモです。 概要 サンプルコード クラスモジュール(UserInfo) 標準モジュール 実行結果 概要 Collectionとクラスモジュールを使用して 複数件のデータを取得します。 サンプルコード サンプルでは、以下を作成します。 クラスモジュー…

【VBA】ファイルの読み込み

VBA

こんにちは。 本日はVBAのサンプルです。 概要 ファイルを読み込み、エクセルに表示したい。 よく忘れるのでメモ。 概要 サンプル サンプル CSVファイルの内容をエクセルに表示します。 読み込みに使用するのはLine Input #ファイル番号, 変数名 filenumber…

【VBA】RGBを使って背景色と文字色を変更

VBA

こんにちは。 本日は、背景色と文字色の色変えメモです。 概要 サンプルソース 使用方法 概要 RGBを使用して背景色及びフォントの色変えを行います。 クラスモジュールの名前はSetColorClassとします。 サンプルソース Option Explicit ' ------------------…

【VBA】ログクラス作成(サイズ確認・書き込み・名前変更したりする)

VBA

こんにちは。 本日はちょっとしたサンプル。 テキストファイルに書き込みを行い、 ある一定のサイズになったら新しく新規のファイルを作成し、 これまでのファイルのインデックスをアップさせていく クラスモジュールのサンプルです。 概要 クラスモジュール…

【VBA】進数変換

VBA

こんにちは。 本日は、VBAで10進数から他の進数に変換するサンプルです。 概要 サンプル まとめ 概要 本記事では、 10進数から2進数 10進数から8進数 10進数から16進数 への変換のサンプルを記載します。 サンプル Option Explicit Sub Main() Dim d As Long…

【VBA】コマンドを実行する

VBA

こんにちは。 本日は、VBAでコマンドを実行する方法を紹介します。 概要 execを使用する Runを使用する 複数のコマンドを実行する まとめ 概要 WScript.Shellを使用します。 execを使用する Dim wsh Set wsh = CreateObject("WScript.Shell") Dim cmd As Str…

【VBA】パスからファイル名・拡張子を抽出する

VBA

こんにちは。 今回は、パスからファイル名を抽出する方法を紹介します。 概要 ファイル名を取得するサンプル 拡張子を取得するサンプル まとめ 概要 Scripting.FileSystemObjectを使用します。 ファイル名を取得するサンプル GetBaseNameを用いて拡張子を除…

【VBA】CSVを出力する

VBA

こんにちは。 本日は、VBAで対象のシートの内容を CSVで出力するサンプルです。 概要 サンプル まとめ 概要 出力対象となるシートを「出力用シート」とします。 釦などを作成し、選択した拡張子で出力します。 行毎に改行し、列毎にカンマで区切って表示しま…

【VBA】空フォルダを検索する

VBA

こんにちは。 本日はVBAで空のフォルダを検索するサンプルです。 概要 サンプルソース [1]ファイル選択ダイアログの出力 [2]検索のメイン関数 [3]出力行のセルクリア [4]ファイルの存在確認 [5]フォルダの存在確認 まとめ 概要 フォルダの検索ダイアログで選…

C#・Node・VBAでビット演算

以前、C#でのビット演算を紹介したのですが NodeやVBAでもやってみましたので 比較してみました。 C#でのビット演算は以下の記事でもう少し詳しく紹介しています。 nandakagoodvibes.hatenablog.com 論理積 論理和 排他的論理和 数値を2進数で取得する まと…

【VBA】配列のソート

VBA

こんにちは。 VBAでの配列のソート方法のメモです。 本記事では、4つの方法を記載します。 InsertionSort QuickSort SmallSort LargeSort まとめ InsertionSort 昇順でソートを行います。 引数は、以下です。 第1引数:対象の配列 第2引数:配列の最小要素数…

【VBA】配下全てのエクセルにヘッダーとページ番号を設定する

VBA

こんにちは。 今回は、前回までの記事を参考に 指定した起点のフォルダ配下のすべての エクセルにヘッダーとページ番号を設定するサンプルです。 概要 ソース まとめ 概要 サンプルではマクロの置いてある場所を起点のパスとしています。 流れは以下。 スタ…

【VBA】シート内の画像の左トップセルを取得する

VBA

今回はシート内の画像の左トップセルを取得するサンプルです。 では、サンプルです。 Sub Main() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) Dim sh As Shape Dim shCount As Long: shCount = ws.Shapes.count Dim shTopArr() As Long ReDim …

【VBA】印刷時のトップ行を取得する

VBA

今回は、改ページなどがある場合に 印刷した際にトップになる行を取得するサンプルです。 では、サンプルです。 Sub Main() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) Dim topRowArr() As Long ReDim topRowArr(0) ' 一行目を予め配列に入れ…

【VBA】ブックのシート一覧を取得する

VBA

今回は、ブックのシート一覧を取得します。 では、さそくサンプルです。 Sub Main() Dim thisBk As Workbook Set thisBk = ThisWorkbook Dim thisWs As Worksheet Set thisWs = ThisWorkbook.Worksheets(1) Dim ws As Worksheet For Each ws In thisBk.Sheet…

【VBA】フォルダ内のエクセル一覧を取得する

VBA

今回は、指定のパス配下のエクセル一覧を取得します。 では、さそくサンプルです。 Sub Main() Dim thisWs As Worksheet Set ThisWs = ThisWorkbook.Worksheets(1) Dim path As String path = ThisWorkbook.path Dim buf As String buf = Dir(path & "\", vb…

【VBA】配下のフォルダ一覧を取得する

VBA

こんにちは。 本日は、指定のパスの下にあるフォルダパスを取得するサンプルです。 下まで探しに行ってくれます。 では、サンプルです。 Option Explicit Private ThisWs As Worksheet Private ThisPath As String Private TaishoFolderArr() As String Sub …

行の高さ・列の幅を取得、設定する

VBA

こんにちは。 エクセルの高さ、幅の取得と設定についての基本のメモです。 1. 高さを取得する ' 1. 行の指定をして取得(Rows) Dim heigth_Rows As Long heigth_Rows = Rows(1).RowHeight ' 2. セルの指定をして取得(Range) Dim heigth_Range As Long heigth_…

VBAでエラー色々

VBA

こんにちは。今日はVBAのエラー処理関連です。 では、早速サンプルいきます。 エラーを発生させる ' エラー番号104を発生させる Err.Raise Number:=104 ' 自作のエラーを発生させる Err.Raise Number:=1000, Description:="自作エラー発生" VBAでエラーを意…

フォルダ選択ダイヤログを表示する

VBA

こんにちは。 本日のサンプルはファイル選択のダイヤログを表示する方法です。 いくつか方法があるみたいですが、今日は私が作ったサンプルをメモします。 Sub SelectPath() Dim ws As Worksheet Set ws = ThisWorkbook.ActiveSheet With Application.FileDi…

サブフォルダのサイズを算出する

VBA

メモです。 指定したパスのサブフォルダの各サイズを算出する方法です。 Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") Dim path As String path = "検索したいフォルダのパスを記載" Dim f As Variant For Each f In FSO.GetFol…

ファイルの存在をチェックする

VBA

指定したファイルが存在するかどうかを チェックするサンプルです。 今回は、検索対象のパス配下に存在するxlsmファイルを 探してみるサンプルを記載します。 Sub Sample24() Dim file As String Dim count As Long Dim path As String path = "検索対象のパ…

エクセルの下部にステータスバーを表示する

VBA

マクロの処理で時間がかかる時に、実行中を示す ステータスバーを表示する方法です。 Application.StatusBar = "処理中…" ' 処理を実行 Application.StatusBar = False Application.StatusBar = False を指定するまでステータスバーが表示されます。 全体の…

他のブックを開かずにセルの値を取得する

VBA

非常に便利なのでメモ。 以下サンプル。 Sub Sample() ' 日付の名前でシートを作成していく Dim sheetName As String sheetName = Format(Date, "yyyymmdd") ' 現在のパスを取得 Dim curPath As String curPath = ThisWorkbook.Path ' シートが存在するかチ…

他のファイルを操作する

VBA

他のファイルを操作する方法を記載します。 1. パスの取得 2. 他のファイルをオープンする 3. コピーする 4. 閉じる では、順番に見ていきます。 1. パスの取得 Dim curPath As String curPath = ThisWorkbook.Path 上記で現在実行しているマクロのパスを取…

文字列として保存されている数値を数値形式に変換する

VBA

エクセルで出力したときに数値が文字列として 設定されてしまうことありますよね。 並び替えを行うとき、比較するときなど 数値が文字列として設定されてしまうと困ることが多々ありますよね。 今回は、このような場合の対策です。 以下、サンプルです。 Sub…

VBAで動的配列

VBA

VBAにはC#などのようにList がありません。 配列も要素数を指定しなければいけないし… 動的に上限するデータを扱いたいときに困りますよね。 なので、今回は配列の要素数を動的に増減するサンプルをつくってみます。 ' 配列を宣言し、要素数を0で初期化 Dim …

VBAの配列

VBA

今日は配列のサンプルを作ります。 配列を使用する際は、変数を使用するときと同じように 宣言から行います。 まず、サンプルを。 Dim arr(2) As String arr(0) = "データ1" arr(1) = "データ2" arr(2) = "データ3" 一行目で配列を宣言しています。 Dim 配列…