忍者ブログ
ブログ主が仕事や個人的に学んだPC系・プログラミング系(VBAとかHTML)について書いていく備忘録ブログ。 ※ここで記載する内容はあくまで「個人的に」上手くいく内容です。ご使用には十分注意してください
[1] [2] [3] [4] [5] [6] [7] [8
Posted by 若槻風亜 - 2014.06.06,Fri
(対象)Excel VBA
(確認)Excel2003(多分2010でも使える)

今回はCSVの読み込み及び書き込みについてを書いていこうと思います。
データがCSVになっている、データをCSVに出力したいということは
意外に多いです。

それこそ色々やり方がありそうなものですが、
とりあえずここでは標準的なものを挙げてみます。


----------------------------------
(前提)
 1.DontLookやOKLookなどを使用→詳しくはこちら

(プログラム 読み込み)
  '==========================================================
  ' 読み込んだCSVをシートに展開
  '==========================================================
  Sub ReadCSV()
    Dim FileNo   As Integer
    Dim MyStr    As String
    Dim StrBox()  As String
    Dim WH1     As Worksheet
    Dim I As Long, J As Integer, K As Integer
    DontLook
    '■読込先を初期化
    Set WH1 = Worksheets("作業用")
    WH1.Cells.Delete
    '■読み込み→写し
    FileNo = FreeFile  ’(※1←↓)
    Open ThisWorkbook.Path & "\テスト用データ.csv" For Input As #FileNo
    MyStr = "": I = 1
    Do Until EOF(FileNo) '(※2)
      '△一行分読み込み
      Line Input #FileNo, MyStr  '(※3)
      '△区切り文字(この場合は「,」)を探す(※4)
      StrBox = Split(MyStr, ",")
      For J = 0 to Ubound(StrBox)
        WH1.Cells(I, J + 1).Value = StrBox(J)
      Next
      I = I + 1
    Loop
    '■閉じる
    Close #FileNo
    OKLook
  End Sub

(解説)
 ※1
  =指定したCSVを開く
  ★「変数 = FreeFile」
    = 変数に空いているファイル番号(FreeFile)を格納
  ★「Open ファイル名 For 処理モード As #ファイル番号」
    =指定したファイルを指定したファイル番号で、指定した
     処理モードで開く
     ※処理モード
      ・・・Input : 入力モード(読み込み)
      ・・・Output : 出力モード(書き込み)
      ・・・Append : 追加モード(書き込み)
      ・・・Random : ランダムアクセスモード(読み込み/書き込み)
      ・・・Binary : バイナリモード(読み込み/書き込み)

 ※2
  =「Do Until EOF(ファイル番号)」
    指定したファイルを読み終わるまで
 ※3
  =「Line Input #ファイル番号, 変数」
    ファイルの内容を1行読み込み、その内容を変数に格納する

 ※4
  =区切り文字で値を区切り、配列変数に格納
   →データをシート上に展開

----------------------------------
(プログラム 書き込み)
  '=========================================================
  ' CSVに出力する
  '=========================================================
  Sub OutPutCSV()
    Dim WH1     As Worksheet
    Dim I As Long, J As Long, K As Integer
    '■読込先を初期化
    Set WH1 = Worksheets("作業用")
    '■CSV作成
    WH1.Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\aaa", _
               FileFormat:=xlCSV
    ActiveWindow.Close False
    MsgBox "CSVファイルが作成されました" & vbCrLf, vbInformation, "終了報告"
  End Sub

(解説)
 ★CSVの作成
  1.CSVにしたいシートをコピー
  2.名前をつけて形式を選択して保存
    「ブック.SaveAs FileName:=パス\ファイル名, FileFormat:=xlCSV」
    ※FileFormatで指定出来るファイル : 参照URL(http://www.officepro.jp/excelvba/book_new/index9.html)

----------------------------------

以上がCSVの読み込みと書き込みについてです。
もっとスマートなやり方やそれぞれの細かい内容については
グーグル先生にお尋ねくださいませ。

では、今回はこの辺りで。


拍手[0回]

PR
Posted by 若槻風亜 - 2014.05.29,Thu

今回はこのブログ内でExcelのVBAをご紹介する際
必ずと言っていいほどよく出るプロシージャを
まとめておきます。


=======================
1.シートのセット
=======================
'■変数の宣言
Public WH1 As WorkSheet
Public WH2 As WorkSheet
Public WH3 As WorkSheet

'■シートセットのプロシージャ
Sub SheetSet()
  Set WH1 = Worksheets("シート名1")
  Set WH2 = Worksheets("シート名2")
  Set WH3 = Worksheets("シート名3")
End Sub
―――――――――――――――――――――――
これを作っておくと、たとえば
Sub AAA ()
  SheetSet '←これで呼び出し
  WH1.Range("A1").Value = "hhh"
End Sub

のように使えます。
上でやっているのは、WH1(=シート名1)の
A1セルに「hhh」を格納する、です。


シートのセットを変数で行っておく利点は、

 1.シート名が変更になった時にそこだけ
   直せば済む
 2.シートのプロパティが絶対予測で出てくる

があります。
ブログ主はExcelでプログラミングする際は
絶対に使うプロシージャの1つです。





=======================
2.描画の停止と開始等々
=======================

'■描画の停止他
Sub DontLook()
  '画面の移動を見せない
  Application.ScreenUpdating = False
  '確認メッセージを出さない
  Application.DisplayAlerts = False
  'マクロの動作が起因するイベント発生を抑制
  Application.EnableEvents = False
End Sub

このマクロを入れておくだけで画像のちらつきがなくなります。
ちなみにこの反対はこちら
'■描画の開始他
Sub OKLook()
  '画面の移動を見せる
  Application.ScreenUpdating = True
  '確認メッセージを出す
  Application.DisplayAlerts = True
  'マクロの動作が起因するイベント発生を抑制しない
  Application.EnableEvents = True
End Sub


ちなみに使い方は

Sub BBB ()
  DontLook
  (作業)
  OKLook
End Sub

という感じです。
値を次々に入れていく、などの作業の時は
あった方が目に痛くない優しいシステムに
なるのではないかと思います。

1番と併せて、ブログ主が絶対に使うプロシージャです。




ということで、このブログ内でよく使われる
プロシージャでした。



拍手[0回]

Posted by 若槻風亜 - 2014.05.27,Tue

(対象)Access VBA
(確認)Access2010


今回は入力内容に日本語が含まれていたら
拒否する方法です。


―――――――――――――――――――――――――
○ソース
―――――――――――――――――――――――――
  '○日本語が含まれていたら拒否する
  Dim Str1 as String
  Str1 = Me.コントロール.Value
  If Str1 Like "*[!0-9a-zA-Z]*" Then
    MsgBox "数字とアルファベット以外は禁止です", vbCritical, "報告:日本語の禁止"
    Me.コントロール.Value = ""
    Me.コントロール.SetFocus
    Exit Sub
  End If


―――――――――――――――――――――――――
○解説
―――――――――――――――――――――――――
1行目から順番に、

 1.文字型の変数(Str1)を宣言
 2.変数に調べたい文字を格納
 3.変数の中身に数字・アルファベット以外が
   入っているかどうかの判断([!○○]で「○○以外」)
 4~7.入っていた時の処理→処理抜け


「あ‐ん」「ア‐ン」「亜-黑」で調べる方法もありますが、
どちらかというとこちらの方が楽でしょうか。


拍手[0回]

Posted by 若槻風亜 - 2014.05.18,Sun

コメントの削除依頼なさった方へ返信



拍手[0回]

Posted by 若槻風亜 - 2014.04.10,Thu

(対象)Windows7(~)

(確認)Windows7(~)


(やりたいこと)
 「Trovi.com」といウイルスを削除する


(状況)
 海外のフリーソフトをダウンロードしたら
 全てのブラウザのデフォルトページが
 下図のような「Trovi.com」という検索画面になり、
 しかも削除出来ない。

 

 ※この記事を書いている時点ではすでに削除していたので
  上図は別サイトさんより



(参照)
 無題な濃いブログ

  (Search Protect by Conduit削除アンインストール方法
   search.conduit.comツールバー)

 上記リンク先の「● Search Protect 削除アンインストール方法」から
 下がこの対象となります。



(方法)
 1.タスクマネージャの起動(Ctrl+Alt+Delete)
   →「タスクマネージャの起動」
 2.「プロセス」タブを選択
   →「説明」で並び替え
   
     
   
 3.「説明」部分に「Search Protect」と書いてある
   以下のものの「プロセスを停止」(ない場合もある)
    ∟SPRunner.exe
    ∟cltmng.exe
    ∟CltMngSvc.exe
   
 4.「C:\ProgramFiles\SearchProtect\(何かあったはず)\bin」の
   「uninstall.exe」を実行
   (もしくは「C:\Program Files (x86)\SearchProtect\Main\bin 」らしいです)

 5.作業終了後再起動





と、以上の流れを行った結果、私のPCでは再度Troviが
表示されることは今のところありません。


結構簡単に何とかなるようです。

同じことのお困りの方がいたら上のことでも
何とかなりそうですのでお勧めしておきます(・ω・)b




<追記 2014/07/23>ここから------------------------------

上記の方法で削除した後、各ブラウザにTroviの
検索画面が残っていることがあります。

その場合は、ホームページがそこに設定されたまま
戻っていないだけですので、各ブラウザごとに
ホームページを手動で変更していただきますと
ちゃんと其のページになります。


(IE)
1.「ツール」
2.「インターネットオプション」
3.「全般」タブ-「ホームページ」


(Chrome)
1.右上の三本線のマーク押下
2.「設定」
3.「デザイン」-「ホームボタンを表示する」-「変更」


(FireFox)
1.「ツール」
2.「オプション」
3.「一般」タブ-「ホームページ」


------------------------------<追記 2014/07/23>ここまで



<追記 2014/07/31>ここから------------------------------

【Troviについて書かれてる他のブログ様】

 ・uretalog(うれ様)
 ・鬼怒川水軍記(鬼怒川水軍様)


------------------------------<追記 2014/07/31>ここまで





―――――――――――――――――――――――――――

※この記事の内容は本ブログ「若風日誌」で掲載した
 内容となります



以下はこの記事への拍手コメントへの返信です。


拍手[20回]

プロフィール
HN:
若槻風亜
性別:
女性
職業:
会社員
趣味:
創作、プログラミング
自己紹介:
仕事や個人で学んだことをまとめておきたかったがために備忘録ブログを立ち上げました。
あくまで自分が学んだこと・自分が出来たことなので、ご覧くださる場合は参照レベルでお願いします。
ブログ内検索
カレンダー
10 2017/11 12
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
P R
最新トラックバック
コガネモチ
フリーエリア



Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]