Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ほんのすこしの僕のExcelマクロ                               中尾光輝                           2012-02-17   DatabaseCuration勉強会1 「Excelのある...
マクロを知らない                で苦しんでいる人                向けにちょっとし                たマクロの使い方                を紹介します2012年2月17日金曜日       ...
データ取り出しに難儀している人向けに、      CSVに書き出さないでファイルの中の      データを取得する方法を紹介します2012年2月17日金曜日               3
心に留めておく事2012年2月17日金曜日              4
CSVはRFC4180に仕様があるの         だが、それ以前に独自実装が先行         していたので、ソフトウェア間で         のファイル互換性に乏しい。2012年2月17日金曜日                 5
は 人生はあま りにも短い。 何 かを憎むに2012年2月17日金曜日                    6
現状を愛す。2012年2月17日金曜日            7
とても大事な                   キミの想いは                  無駄にならない                     世界は廻る                (中田ヤスタカ 2007)2012年2月17日金...
先行研究       • デフォルトデータフォーマット変換による遺伝子名            などの日付化と指数化、その公共DBへの波及2012年2月17日金曜日                       9
マクロ2012年2月17日金曜日   10
VBの編集と実行                • 開発メニュー                • エディター                • マクロの記録2012年2月17日金曜日                11
セルの指定        Sub	  セルの値を取得するセルに値をセットする()        	  	  	  	  MsgBox	  (Cells(1,	  "A").Value)        	  	  	  	  Cells(1,	 ...
文字列の置換         Sub 初期値()                                               Sub セル内改行を消す()           Cells(1, "A").Value = "ATT...
くりかえし、For文                Sub	  くりかえし()                	  	  	  	  Dim	  i	  As	  Integer                	  	  	  	  For	 ...
IF文、論理式                Sub	  IF文()                	  	  	  	  Dim	  i	  As	  Integer                	  	  	  	  For	  i	  ...
応用1:SQL文を作成する     Sub	  INSERT文生成()     	  	  	  	  Dim	  i	  As	  Integer     	  	  	  	  For	  i	  =	  1	  To	  5     	 ...
応用2:リンク集をつくる                • https://github.com/nakao/vb/blob/                  master/KazusaAnnotation/                 ...
スクリプティング2012年2月17日金曜日           18
MacRubyでExcel.appを操る2012年2月17日金曜日                          19
RubyでExcelを操る                • require spreadsheet                • くわしくは、ruby excel spreadsheet                 でGoogle検索...
1. xlsファイルを開く                2. セルの値を取得する                3. セルに値をセットする                4. セルの値を検証する2012年2月17日金曜日           ...
phpでExcelを操る                • php COMクラス2012年2月17日金曜日                   22
Java から POI で Excel を操る2012年2月17日金曜日                             23
まとめ                • ほんのすこしのVBマクロで世界がひら                 ける。                • すべてのCSVを生まれる前に消し去りた                 い、を実現するため...
Upcoming SlideShare
Loading in …5
×

ほんのすこしの僕のExcelマクロ

2,012 views

Published on

https://sites.google.com/site/databasecuration/ibento/wuti でのプレゼン資料です。

トーク録画は http://www.ustream.tv/recorded/20501187 です。

コードはGithubに後ほど上げます。

CC-BY Mitsuteru Nakao

Published in: Education
  • Be the first to comment

ほんのすこしの僕のExcelマクロ

  1. 1. ほんのすこしの僕のExcelマクロ 中尾光輝 2012-02-17 DatabaseCuration勉強会1 「Excelのあるくらし」 http://www.dbcuration.info/ibento/2012年2月17日金曜日 1
  2. 2. マクロを知らない で苦しんでいる人 向けにちょっとし たマクロの使い方 を紹介します2012年2月17日金曜日 2
  3. 3. データ取り出しに難儀している人向けに、 CSVに書き出さないでファイルの中の データを取得する方法を紹介します2012年2月17日金曜日 3
  4. 4. 心に留めておく事2012年2月17日金曜日 4
  5. 5. CSVはRFC4180に仕様があるの だが、それ以前に独自実装が先行 していたので、ソフトウェア間で のファイル互換性に乏しい。2012年2月17日金曜日 5
  6. 6. は 人生はあま りにも短い。 何 かを憎むに2012年2月17日金曜日 6
  7. 7. 現状を愛す。2012年2月17日金曜日 7
  8. 8. とても大事な キミの想いは 無駄にならない  世界は廻る (中田ヤスタカ 2007)2012年2月17日金曜日 8
  9. 9. 先行研究 • デフォルトデータフォーマット変換による遺伝子名 などの日付化と指数化、その公共DBへの波及2012年2月17日金曜日 9
  10. 10. マクロ2012年2月17日金曜日 10
  11. 11. VBの編集と実行 • 開発メニュー • エディター • マクロの記録2012年2月17日金曜日 11
  12. 12. セルの指定 Sub  セルの値を取得するセルに値をセットする()        MsgBox  (Cells(1,  "A").Value)        Cells(1,  "A").Value  =  Cells(1,  "A").Value  *  2 End  Sub Sub  型エラー()        MsgBox  (Cells(1,  "C").Value  +  "["  +  Cells(1,  "A").Value  +  "]") End  Sub Sub  数値を文字列に変換する、文字列を結合する()        MsgBox  (Cells(1,  "C").Value  +  "["  +  CStr(Cells(1,  "A").Value)  +  "]")        Cells(1,  "D").Value  =  Cells(1,  "C").Value  +  "["  +  CStr(Cells(1,  "A").Value)  +  "]" End  Sub Sub  数式をつかう()        Cells(1,  "E").Formula  =  "=B1  -­‐  A1" End  Sub2012年2月17日金曜日 12
  13. 13. 文字列の置換 Sub 初期値() Sub セル内改行を消す() Cells(1, "A").Value = "ATTATTA" Dim str As String End Sub str = Cells(3, "A").Value Cells(3, "A").Value = Replace(str, vbCr, " ") Sub 置換() End Sub Dim str As String str = Cells(1, "A").Value Sub LFはセル内改行しない() MsgBox (str) Dim str As String Cells(2, "A").Value = Replace(str, "A", "a") str = Cells(1, "A").Value End Sub MsgBox (str & vbLf & str) Cells(3, "A").Value = str & vbLf & str Sub タブ文字列() End Sub Dim str As String str = Cells(1, "A").Value Sub CRLF() MsgBox (str & vbTab & str) Dim str As String End Sub str = Cells(1, "A").Value MsgBox (str & vbCrLf & str) Sub CRとセル内改行() Cells(3, "A").Value = str & vbCrLf & str Dim str As String End Sub str = Cells(1, "A").Value Cells(3, "A").Value = str & vbCr & str & vbCr & str End Sub2012年2月17日金曜日 13
  14. 14. くりかえし、For文 Sub  くりかえし()        Dim  i  As  Integer        For  i  =  1  To  10                Cells(i,  "A")  =  i                Cells(i,  "B")  =  i  *  i                Cells(i,  "C")  =  i  +  i        Next  i End  Sub2012年2月17日金曜日 14
  15. 15. IF文、論理式 Sub  IF文()        Dim  i  As  Integer        For  i  =  1  To  10                If  (Cells(i,  "A").Value  Mod  2)  =  0  Then                        Cells(i,  "D").Value  =  "偶数"                End  If        Next  i End  Sub2012年2月17日金曜日 15
  16. 16. 応用1:SQL文を作成する Sub  INSERT文生成()        Dim  i  As  Integer        For  i  =  1  To  5                Cells(i,  "G").Value  =  "INSERT  INTO  genes  VALUES  ("  &  _                                                                                Cells(i,  "A").Value  &  ",  "  &  _                                                                                Cells(i,  "B").Value  &  ",  "  &  _                                                                                Cells(i,  "C").Value  &  ",  "  &  _                                                                                ""  &  Cells(i,  "D").Value  &  ",  "  &  _                                                                                Cells(i,  "E").Value  &  ",  "  &  _                                                                                ""  &  Cells(i,  "F").Value  &  ")"        Next  i End  Sub2012年2月17日金曜日 16
  17. 17. 応用2:リンク集をつくる • https://github.com/nakao/vb/blob/ master/KazusaAnnotation/ annotationHelper.vb2012年2月17日金曜日 17
  18. 18. スクリプティング2012年2月17日金曜日 18
  19. 19. MacRubyでExcel.appを操る2012年2月17日金曜日 19
  20. 20. RubyでExcelを操る • require spreadsheet • くわしくは、ruby excel spreadsheet でGoogle検索2012年2月17日金曜日 20
  21. 21. 1. xlsファイルを開く 2. セルの値を取得する 3. セルに値をセットする 4. セルの値を検証する2012年2月17日金曜日 21
  22. 22. phpでExcelを操る • php COMクラス2012年2月17日金曜日 22
  23. 23. Java から POI で Excel を操る2012年2月17日金曜日 23
  24. 24. まとめ • ほんのすこしのVBマクロで世界がひら ける。 • すべてのCSVを生まれる前に消し去りた い、を実現するためのスクリプティング を紹介した。2012年2月17日金曜日 24

×