カテゴリー「パソコン」の記事

ExcelへのCSV取込プログラム(備忘)

2024年10月28日 / エクセル, パソコン

CSVファイルをExcelに取り込む際に、最近はPowerQueryを使うようです。
私は、どうもPowerQueryが苦手かつ、定型的な処理ではなく作業ごとに対象ファイルか変わるなどに対応するためCSVをシートに展開するマクロを共通化していました。
しかし、読みながらセルに貼り付ける処理を行っていると大量データの場合相当時間がかかります。

そこで、2種類の展開マクロを作ってみました。
1.CSVを開いてシートごとコピペする(マクロ)
2.読みながら2次元配列に展開して一気にシートにコピーするマクロ
3.読みながら直接セルに展開するマクロ

テストデータ(94列18,000件程度)で時間を測ったところ、1のパターンは15秒、2のパターンは5秒で、3のパターンは2分で完了しました。
テストプログラムを添付しておきます(個人の責任でお試し下さい)

2のマクロは、””で囲ったデータも処理できます。(「,」と改行は対応を確認)

AppSheet 使ってみた

2024年10月12日 / パソコン, 仕事

先日のITC広島定期セミナーで、AppSheetの紹介をしました。

AppSheetはGoogleのノーコードツールで、スプレッドシートをデータベースとしたアプリが簡単に作れます。

サンプルの作り方を資料として作ったので、公開します。⇒ 資料

 

EXCELクラスモジュールについて(備忘)

2024年3月16日 / エクセル, パソコン, 仕事

Excelのクラスモジュールについて備忘録です。

  1. モジュール名はプロパティのオブジェクト名で変更する。
  2. プロパティは以下のコードで記述。(Privateにすることでカプセル化)
    Option Explicit
    Private m〇〇〇〇 As 型
  3. プロパティをセットするのは以下
    Property Let 〇〇〇〇(i〇〇〇〇 As String)
    m〇〇〇〇 = i〇〇〇〇
    End Property
  4. プロパティを取り出すのは以下
    Property Get o〇〇〇〇()
    o〇〇〇〇 = m〇〇〇〇
    End Property
  5. モジュール記述はSub または Function で記述する
  6. サンプル(ファイル出力をクラス化)
    Option Explicit
    Private mファイル名 As String ‘ファイル名
    Private mIntFree As Integer ‘ファイル番号

    Property Let ファイル名(ファイル名_I As String)
    ‘ファイル名をセットする
    mファイル名 = ファイル名_I
    End Property

    ‘メソッド
    ‘ファイルopen:ファイル名(フルPath)を受け取って、ファイルをOpen
    ‘データWrite:引数でデータを受け取り、ファイルに出力する
    ‘ファイルClose:ファイルをクローズするSub ファイルOpen()
    ‘セットされているファイル名でOpenする
    mIntFree = FreeFile ‘空番号を取得
    Open mファイル名 For Output As #mIntFree
    End Sub

    Sub データWrite(データ_I As String)
    ‘データ_I を ファイルに出力する
    Print #mIntFree, データ_I
    End Sub

    Sub ファイルClose()
    ‘オープンしたファイル番号でクローズする
    Close #mIntFree
    End Sub

  7. 使う側の標準モジュールは以下
    Excelのあるフォルダ(OneDrive以外)にtest.csvを出力します。(内容は”Test Data”)

Sub test_write()
Dim 出力ファイル As New CSV出力
If Left(ThisWorkbook.Path, 4) = “http” Then
MsgBox “OneDrive フォルダでは実行できません”
Exit Sub
Else
出力ファイル.ファイル名 = ThisWorkbook.Path & “\test.csv”
End If
出力ファイル.ファイルOpen
出力ファイル.データWrite (“Test Data”)
出力ファイル.ファイルClose
End Sub

プロフィール

志多木義浩
732-0821
広島市南区大須賀町17-5-709
TEL  080-3622-4171


大きな地図で見る

カテゴリー

WordPress

セキュリティニュース


TOPへ戻る

PAGE TOP