vbaブレークポイント(breakpoint)で止まらない場合の対処方法
ソースコードに行数を変化させて保存して、再開すると有効らしい。
2013年12月8日日曜日
2013年11月22日金曜日
chromeのurl auto completeで特定のurlを削除する方法
ラベル:
裏技
1.アドレス欄に何を打って、削除したいURLのauto complete一覧を呼び出し
2.矢印で削除したいURLを選択
3.Shift+Delで削除する
以上
2.矢印で削除したいURLを選択
3.Shift+Delで削除する
以上
2013年9月7日土曜日
vba querytable csv取り込み 文字コード対応 TextFilePlatform
TextFilePlatform = 932 # SJIS 932, EUC-JP 20932, UTF8 65001, ASCII 1252
2013年7月19日金曜日
switch all comments show/hide by dblClick a cell
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Address = "$A$1" Then If Target.Value = "on" Then Target.Value = "" Application.DisplayCommentIndicator = xlCommentIndicatorOnly Else Application.DisplayCommentIndicator = xlCommentAndIndicator Target.Value = "on" End If Cancel = True End If End Sub
2013年6月25日火曜日
ruby date 比較
$ irb
irb(main):001:0> require 'date'
=> true
irb(main):002:0> from = Date::strptime('2013-01-01', '%Y-%m-%d')
=> #
irb(main):004:0> to = Date::strptime('2013-01-02', '%Y-%m-%d')
=> #
irb(main):005:0> same = Date::strptime('2013-01-02', '%Y-%m-%d')
=> #
irb(main):006:0> from > to
=> false
irb(main):007:0> from < to
=> true
irb(main):008:0> to == same
=> true
2013年6月20日木曜日
rubyでFTPからCSV(?)をゲットして、DBに突っ込む
ftp.yml
get_ftp.rb
sample usage: # ruby get_ftp.rb index_hist
will get 'index_hist.gz' from ftp and gunzip it to index_hist
sample usage1: # ruby import_indices.rb master index_master
will import data from index_master into table 'indices'
sample usage2: # ruby import_indices.rb hist index_hist
will import data from index_hist into table 'index_value_hist'
remote_path: pub/test
retry: 3
host: 192.168.1.70
username: anonymous
password: anonymous
get_ftp.rb
sample usage: # ruby get_ftp.rb index_hist
will get 'index_hist.gz' from ftp and gunzip it to index_hist
require 'net/ftp' require 'yaml' cnt_retry = 0 puts "start process..." begin ftp_cfg = YAML.load_file("ftp.yml") fn = ARGV[0] ftp = Net::FTP.open(ftp_cfg["host"]) ftp.login(ftp_cfg["username"],ftp_cfg["password"]) ftp.chdir(ftp_cfg["remote_path"]) puts "getting #{fn}.gz from FTP for attempt #{cnt_retry}..." ftp.getbinaryfile("#{fn}.gz") system("gunzip -f #{fn}.gz") ftp.close rescue => err if cnt_retry + 1 < 3 cnt_retry += 1 sleep 5 retry else raise err log.error "There was an error: #{err.message}" end else puts "Job done." endimport to a mysql database db.yml
host: 192.168.1.70
username: kagen
password: kagen
database: db_development
import_indices.rbsample usage1: # ruby import_indices.rb master index_master
will import data from index_master into table 'indices'
sample usage2: # ruby import_indices.rb hist index_hist
will import data from index_hist into table 'index_value_hist'
require 'yaml' require 'kconv' require 'mysql' puts "start process of data import..." begin my = Mysql::init() db_cfg = YAML.load_file("db.yml") if ARGV[0] == "master" tbl = "indices" fld = "(itemcode, jpname, engname, jpsourcename, engunitname, unit, decimalpoint, startmonth, updated_at)" else tbl = "index_value_hist" fld = "(itemcode, subcode, cycle, yyyy, mm, dd, val, updated_at)" end puts "Connecting to host #{db_cfg["host"]} with user #{db_cfg["username"]} using database #{db_cfg["database"]}..." my.real_connect(db_cfg["host"], db_cfg["username"], db_cfg["password"], db_cfg["database"]) puts "Connected Successfully" my.query("SET AUTOCOMMIT=0") puts "Start transaction..." my.query("START TRANSACTION") if ARGV[0] == "master" puts "Processing Index master" elsif ARGV[0] == "hist" puts "Processing Index values history" end begin File.open(ARGV[1]) do |f| f.each_line do |row| sql = nil rows = row.split(":") #puts rows.inspect if ARGV[0] == "master" sql = "INSERT INTO #{tbl} #{fld} VALUES('#{rows[0]}', '#{rows[1].toutf8}', '#{rows[2]}', '#{rows[3].toutf8}', '#{rows[4].toutf8}', '#{rows[5]}', '#{rows[6]}', '#{rows[7]}', CURRENT_TIMESTAMP)" elsif ARGV[0] == "hist" if rows[3] == "D" if rows[0].strip == "DEL" sql = "DELETE FROM #{tbl} WHERE itemcode = '#{rows[1].strip}' AND subcode = '#{rows[2].strip}' AND cycle = 'D' AND yyyy = '#{rows[4][0..3]}' AND mm = '#{rows[4][4..5]}' AND dd = '#{rows[4][6..7]}'" elsif rows[0].strip == "UPD" sql = "INSERT INTO #{tbl} #{fld} VALUES('#{rows[1].strip}', '#{rows[2].strip}', 'D', '#{rows[4][0..3]}', '#{rows[4][4..5]}', '#{rows[4][6..7]}', '#{rows[5]}', CURRENT_TIMESTAMP)" end elsif rows[3] == "M" if rows[0].strip == "DEL" sql = "DELETE FROM #{tbl} WHERE itemcode = '#{rows[1].strip}' AND subcode = '#{rows[2].strip}' AND cycle = 'D' AND yyyy = '#{rows[4][0..3]}' AND mm = '#{rows[4][4..5]}'" elsif rows[0].strip == "UPD" sql = "INSERT INTO #{tbl} #{fld} VALUES('#{rows[1].strip}', '#{rows[2].strip}', 'M', '#{rows[4][0..3]}', '#{rows[4][4..5]}', '', '#{rows[5]}', CURRENT_TIMESTAMP)" end end end if sql #puts sql my.query(sql) end end end my.query("COMMIT") rescue => err puts "rollback changes..." my.query("ROLLBACK") raise err log.error "There was an error while insert db: #{err.message}" end rescue => err raise err log.error "There was an error: #{err.message}" else puts "Job done." endcreate tabless
CREATE TABLE `indices` (
`itemcode` varchar(15) NOT NULL ,
`jpname` varchar(30) NOT NULL ,
`engname` varchar(28) NOT NULL ,
`jpsourcename` varchar(32) NOT NULL ,
`jpunitname` varchar(30) NOT NULL ,
`engunitname` varchar(30) NOT NULL ,
`unit` int(8) NOT NULL ,
`decimalpoint` int(8) NOT NULL ,
`startmonth` int(8) NOT NULL ,
`updated_at` datetime NOT NULL ,
PRIMARY KEY (`itemcode`)
) type=InnoDB;
CREATE TABLE `index_value_hist` (
`itemcode` varchar(15) NOT NULL ,
`subcode` varchar(5) NOT NULL ,
`cycle` varchar(1) NOT NULL ,
`yyyy` varchar(4) NOT NULL ,
`mm` varchar(2) NOT NULL ,
`dd` varchar(2) NOT NULL ,
`val` double(24,7) NOT NULL ,
`updated_at` date NOT NULL ,
PRIMARY KEY (`itemcode`, `subcode`, `cycle`, `yyyy`, `mm`, `dd`)
) type=InnoDB;
Sample Data to import (EUC, LF) No title row ☆index_value_hist only☆
UPD :AREGEN :A :M:201212:150463.7400000:20121218
UPD :AREGEN :C :M:201212:158030.9800000:20121218
UPD :AREGEN :C :W:2012124:158030.9800000:20121218
UPD :AREGEN :H :M:201212:158030.9800000:20121218
...
2013年6月8日土曜日
vbaで動的に入力規則をつける書き方
ラベル:
vba
With gPlanSt.Range(RG_BASE).Resize(5, 1).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:=Join(gShopSetting.Item(gShop).Item("曜日").Keys, ",") .IgnoreBlank = False .InCellDropdown = True .IMEMode = xlIMEModeAlpha .ShowInput = True .ShowError = True End With
2013年6月6日木曜日
vbaの日付型の初期値
ラベル:
vba
Office2007ですが
なんでこの日だろう、ちなみに「j=0」この判断も成立しますね、vbは穴だらけだね?
'おまけ、イミディエイトウィンドウで
Dim j As Date Debug.Print Format(j, "yyyy-mm-dd-hh-nn-ss")
1899-12-30-00-00-00
なんでこの日だろう、ちなみに「j=0」この判断も成立しますね、vbは穴だらけだね?
Dim j As Date If j = 0 Then Debug.Print CDate(j) '0:00:00
'おまけ、イミディエイトウィンドウで
?isdate(0)
False
?cdate(0)
0:00:00
?isdate(1)
False
?cdate(1)
1899/12/31
?cdate(2)
1900/01/01
Scripting.Dictionary に配列をValueとして置く
ラベル:
vba
Sub nn() Dim kk(2) As String kk(0) = "aa" kk(1) = "bb" kk(2) = "cc" Dim ak As New Scripting.Dictionary ak.Add "yoro", kk Debug.Print (ak.Item("yoro")(0)) Debug.Print (ak.Item("yoro")(1)) Debug.Print (ak.Item("yoro")(2)) kk(0) = "dd" kk(1) = "ee" kk(2) = "ff" Debug.Print (ak.Item("yoro")(0)) Debug.Print (ak.Item("yoro")(1)) Debug.Print (ak.Item("yoro")(2)) End Sub
outputは:
aa
bb
cc
aa
bb
cc
その他方法
'OK1 ak.Add "yoro", array("aa","bb","cc") 'OK2 ak.Add "yoro", New Collection ak.Item("yoro").Add "aa" ak.Item("yoro").Add "bb" ak.Item("yoro").Add "cc" Debug.Print ak.Item("yoro").Count Debug.Print ak.Item("yoro").Item(1) Debug.Print ak.Item("yoro").Item(2) Debug.Print ak.Item("yoro").Item(3) 'NG1 dim kk() as String ak.Add "yoro",kk ReDim Preserve ak.Item("yoro")(0) 'NG2 ak.Add "yoro",Array()
2013年5月30日木曜日
長時間処理時の大体のバターン、再利用のためメモした、高速化、画面更新停止、再計算停止
ラベル:
vba
Dim startTime As Date Dim usedTime As Long startTime = Now() Application.Calculation = xlCalculationManual 'これは必要に応じで Application.ScreenUpdating = False for each item in items DoEvents 'do things next Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic 'これは必要に応じで Application.Calculate usedTime = DateDiff("s", startTime, Now()) MsgBox "完了しました。" & vbNewLine & vbNewLine & "経過時間:" & usedTime & "秒", vbInformation + vbOKOnly, "処理結果"
2013年5月24日金曜日
svnサーバリポジトリURL変更時、コマンドラインでsvn switch relocateの例
ラベル:
linux
旧URL:http://svn.myproj.com
新URL:https://svn.myproj.com
まずはinfoを見てみる
svn info
そしてURLを変更
svn switch --relocate --username kagen88 http://svn.myproj.com https://svn.myproj.com
passwordをいれて完了
確認
svn info
svn up
2013年5月23日木曜日
web pageをゲットの2種方法 xmlhttp と querytables、querytablesの取得完了を待ってから処理する
ラベル:
vba
Public oXMLHTTP As New MSXML2.xmlhttp Public Function ShowHTML(ByVal strURL, Optional ByVal strName = "") As String On Error GoTo ErrorHandler Dim strError As String strError = "" Dim strResponse As String strResponse = "" With oXMLHTTP .Open "GET", strURL, False .send "" If .Status <> 200 Then strError = .statusText GoTo CleanUpAndExit Else If strName <> "" Then Dim outtext As Long outtext = FreeFile Open ActiveWorkbook.Path & "\" & strName & ".txt" For Output As #outtext Write #outtext, .responseText Close #outtext End If strResponse = .responseText End If End With CleanUpAndExit: On Error Resume Next ' Avoid recursive call to error handler ' Clean up code goes here Set oXMLHTTP = Nothing ' Report any error If Len(strError) > 0 Then MsgBox strError Else ShowHTML = strResponse End If Exit Function ErrorHandler: strError = Err.Description Resume CleanUpAndExit End Function Sub test1() repstr = ShowHTML("http://kagen88.blogspot.jp/") ActiveSheet.Range("A1") = repstr End Sub Sub test2() Set shFirstQtr = Workbooks(1).Worksheets(1) Set qtQtrResults = shFirstQtr.QueryTables _ .Add(Connection:="URL;http://kagen88.blogspot.jp/", _ Destination:=shFirstQtr.Cells(1, 1)) With qtQtrResults '.WebFormatting = xlAll .WebFormatting = xlWebFormattingAll .Refresh End With Dim timeToRun As Date timeToRun = Now + TimeValue("0:00:05") Application.OnTime timeToRun, "doSomething" '5秒を待って "doSomething"を実行 End Sub Sub doSomething() 'Do Anything End Sub
2013年5月14日火曜日
2013年5月10日金曜日
ExcelのDATE関数で「日」で「ゼロ」を入れると、前月の最終日が帰ってくる
Excelの数式「=DATE(年,月,日)」の「日」で「ゼロ」を入れると、前月の最終日が帰ってくる
値は 2013/1/31で帰ってくる
え?裏ワザ?
=DATE(2013,2,0)
値は 2013/1/31で帰ってくる
え?裏ワザ?
2013年3月15日金曜日
2013年3月6日水曜日
コマンドラインでyoutubeに動画をアップロード
googleclを使いますて、youtubeに動画をアップロードする
http://code.google.com/p/googlecl/
まずはダウンロードしてください。
windowsのコマンドプロンプトで使うならgooglecl-win32-X.X.XX.zipみたな最新バージョン。
http://code.google.com/p/googlecl/downloads/list
適当に解凍してください。
そして一回目のトライ
※一回目ではコマンドを実行したら、ブラウザーが勝手に立ち上げて、googleclからyoutubeサービスにアクセスを許可するって画面が出てくる、「はい」
怒られた、errorのjsonを見ると、カテゴリの省略できないだね、はいはい。
出来ました
http://code.google.com/p/googlecl/
まずはダウンロードしてください。
windowsのコマンドプロンプトで使うならgooglecl-win32-X.X.XX.zipみたな最新バージョン。
http://code.google.com/p/googlecl/downloads/list
適当に解凍してください。
そして一回目のトライ
※一回目ではコマンドを実行したら、ブラウザーが勝手に立ち上げて、googleclからyoutubeサービスにアクセスを許可するって画面が出てくる、「はい」
C:\googlecl>google youtube post c:\googlecl\abc.wmv
Please specify category:
Loading c:\googlecl\abc.wmv
{'status': 400, 'body': "<?xml version='1.0' encoding='UTF-8'?><errors><error><domain>yt:validation</domain><code>required</code><location type='xpath'>media:group/media:category[@scheme='http://gdata.youtube.com/schemas/2007/categories.cat']/text()</location></error></errors>", 'reason': 'Bad Request'}
怒られた、errorのjsonを見ると、カテゴリの省略できないだね、はいはい。
C:\googlecl>google youtube post c:\googlecl\abc.wmv
Please specify category: Howto
Loading c:\googlecl\abc.wmv
Video uploaded: https://www.youtube.com/watch?v=xxxxvideoid&feature=youtube_gdata
出来ました
2013年3月4日月曜日
I am superuser
ラベル:
mysql
mysql> CREATE USER 'kagen'@'%' IDENTIFIED BY 'kagen';
GRANT ALL PRIVILEGES ON *.* TO 'kagen'@'%';
2013年2月27日水曜日
買った中華パッドにGoogleTalkがないから、困った。
この「com.google.android.talk_142101.apk」を「RootExperor」で/system/appに入れれば済むみたい。
この「com.google.android.talk_142101.apk」を「RootExperor」で/system/appに入れれば済むみたい。
2013年2月17日日曜日
vbaでhtmlの中身を取り出す
Sub test() Set sht = Sheets("Sheet1") RowCount = 1 Set objIE = CreateObject("internetexplorer.application") With objIE .Visible = False .navigate "http://www.vbapro.info" Do While .Busy Or .readyState <> 4 DoEvents Loop For Each ele In .document.all Select Case ele.tagName Case "DIV": sht.Range("A" & RowCount) = ele.innertext RowCount = RowCount + 1 End Select Next ele End With Set objIE = Nothing End Sub
登録:
投稿 (Atom)