2011年11月29日火曜日

vbaで先月末、今月末、今月の日数など

vbaのdateをちょっと...

'今日
today = Date

'先月末
lastMonthLastDay = _
DateAdd("d", -1, DateSerial(Year(today), Month(today), 1))

'先月初
lastMonthLastDay = _
DateAdd("m", -1, DateSerial(Year(today), Month(today), 1))

'今月末
thisMonthLastDay = _
DateAdd("d", -1, DateAdd("m", 1, DateSerial(Year(today), Month(today), 1)))

'今月の日数
thisMonthDayCount = DateDiff("d",lastMonthLastDay,thisMonthLastDay)

'今日(yyyymmdd形式)
today = Format(Date,"yyyymmdd")

'今日(mysql形式)
today = Format(Date,"yyyy-mm-dd")

'今現在(mysql形式)
Format(Now, "yyyy-mm-dd hh:nn:ss")

'YYYYMMDDをDate形に変換
myDate = CDate(Format("20111231", "@@@@/@@/@@"))


2011年11月25日金曜日

Excelのバーションを自動判断保存する(警告なし)のサンプル

Excelの各バーション(95,97,2000,2003,2007,2010)file format一覧表


Excel 定数 拡張子 説明
97-2003 xlWorkbookNormal -4143 .xls 既定のExcel2003ベースのファイル形式
2007-2010 xlWorkbookDefault 51 .xlsx 既定のExcel2007ベースのファイル形式、VBAなし
2007-2010 xlOpenXMLWorkbookMacroEnabled 52 .xlsm Excel2007ベースのマクロ有効ファイル形式、VBA有効
2007-2010 xlExcel12 50 .xlsb Excel2007バイナリファイル形式(BIFF12)
2007-2010 xlExcel8 56 .xls Excel 97 - 2003のバイナリファイル形式(BIFF8)
2007-2010 xlExcel5 39 .xls Excel 5.0/95のバイナリファイル形式(BIFF5)

サンプル
'まずは拡張子を定義
    Public Const Extension_Excel2003 As String = ".xls" '2003エクセルの拡張子
    Public Const Extension_Excel2007 As String = ".xlsx" '2007エクセルの拡張子

    '2007エクセル(マクロ)の拡張子、保存するファイルにVBAが含まれる時はこっちを使ってください
    Public Const Extension_Excel2007_With_Macro As String = ".xlsm"

    'まずはfileFormat定数を定義
    Public Const Excel2003FileFormat As Long = -4143
    Public Const Excel2007FileFormat As Long = 51
    Public Const Excel2007FileFormatWithMacro As Long = 52

    Public gExt As String
    Public gFormat As Long

    '使っているEXCELのバージョンが97-2003
    If Val(Application.Version) < 12 Then
        gExt = Extension_Excel2003 
        gFormat = Excel2003FileFormat
    Else '2007-2010の場合
        gExt = Extension_Excel2007
        gFormat = Excel2007FileFormat
    End If

    '保存
    Application.DisplayAlerts = False
    With someWorkbook
        .SaveAs Filename:= strFileName & gExt, FileFormat:=gFormat
    End With
    Application.DisplayAlerts = True

2011年11月21日月曜日

UTF-8とUTF-8N

railsに怒られた
syntax error, unexpected kEND, expecting $end
controllerの文字コードをSJISからUTF8に変換したら、このエラーが出るようになった…
変換を使ったのはterapad、2バイト文字全然ないのに、なぜ?


一般異議でUTF8はUTF8のボムなしを指します(BOMってなに?わかない…最初の一文字目だそうです)
Terapadの呼び方では:
UTF8 = UTF8ボムあり
UTF8N = UTF8ボムなし

だからUTF8Nにすればエラーが出なくなる、改行コードはLFかCRLFどっちでも?(だそうです)
エンコードってややこしいな、兎に角UTF8ボムなしにすればよいか…


2011年11月18日金曜日

railsでdb migrateしたら怒られたのでgemをダウングレード

railsでdb migrateしたら怒られた

WARNING: 'require 'rake/rdoctask'' is deprecated. Please use 'require 'rdoc/task' (in RDoc 2.4.2+)' instead.

gemのバージョンが高すぎるからgem 1.3.7にダウングレードする

# gem -v
1.8.7
# gem update --system 1.3.7
# gem -v
1.3.7

あとgemのmysqlも入れてないからいれる

# gem install mysql

これでdb:migrateしたらうまくいった

# rake db:migrate

ちなみに、すべてのテーブルを削除する方法は

# rake db:migrate VERSION=0

2011年11月10日木曜日

railsのscaffoldで作成したcontrollerが余計のお世話をする

railsのscaffoldを作成したら、controllerでactionを追加したら、actionをidとして探してしまうという余計のお世話は、実はscaffoldの仕業
rorr(ruby on rails rookie)の私にyuoさんがいろいろ教えてくれてありがとうございました。

$ rails anydesign -d mysql #まずはプロジェクト作成(データベースはmysql)
$ cd anydesign
$ rake db:create #DB作成
$ ruby script/generate scaffold report title:string header:text body:text footer:text #scaffoldで簡単なreport機能を作成
$ rake db:migrate #DBを更新
$ ruby script/server #サーバを立ててみる

ブラウザーでhttp://localhost:3000/を叩いたら、タイムアウト…
調べたら、iptables(firewall)がオンになってる

$ sudo service iptables status #状態を調査する
$ sudo service iptables stop #やっぱりオンになってるから、止める

もう一回ブラウザーでhttp://localhost:3000/を叩いたら、出ました。on rail...
先作ったscaffoldで作ったreportを見てみるhttp://localhost:3000/report
あ!ちゃんと空の一覧が出来ました、便利。
一覧、新規、変更、削除一応全部できる。取り敢えず
title, header, body, footerを入れて、一レコードを作りました。
そして、controllerで新しいaction、「test」を追加しました、空のaction
in reports_controller.rb

def test
end

http://localhost:3000/report/testを叩いたら、[ActiveRecord::RecordNotFound (Couldn't find Report with ID=test):]という
エラーが出来ました、なぜaction名がidに無理やりも当てるの?railsの大きなお世話だね、yuoさんが教えてくれた
scaffoldで作成するとき、config/routes.rbで

map.resources :reports

を追加してくれたので、こうなった、一番簡単なのはこの一文を削除すればいいですが、config/routes.rbで

map.resources :reports, :only => ['create','show'] #適応actionを絞る
あるいは
map.resources :reports, :except=> ['test'] #action testを除外する

でもいいらしい。

svnコマンド、ディレクトリを再帰的に無視属性追加する


$ svn propset -R 'svn:ignore' '*' ./log/
$ svn propset -R 'svn:ignore' '*' ./tmp/
$ svn ci -m "ignore tmp and log"

ここから引用しました、ありがとうございました。

2011年11月8日火曜日

ディレクトリ構造のまま、ファイル一覧で指定したファイルを別のディレクトリに移すVBA

grepで特定の文字を含むファイルを探し出す、一覧を作成する、そしてディレクトリ構造のまま別場所に移す。作業ログも出力できる。
ファイルはこちらでダウンロード、まぁ使い道ないないかもね…

subversionコンソールでのcommit

まずはSubversionクライアントが必要です。
Subversionサーバサイドと同じくインストールしましょう

# yum -y install subversion mod_dav_svn #クライアントのみならmod_dav_svnは不要かも


そしてチェクインしましょう、今回のソースは”/www/myproj”ですので
そしてリポジトリ親玉のURLはhttp://localhost/repose/とします

# svn co http://localhost/repose/myproj /www/myproj

更新

# svn up 更新
# svn status 変更があったファイルの一覧
# svn info リポジトリ情報など

単純のクライアントだけのsubversionはないですか?

2011年11月2日水曜日

install ruby on rails development evn on centos6.0 memory


//install centOS6.0 from netinstall

//install all ruby
# sudo yum -y install ruby ruby-devel ruby-irb ruby-libs ruby-rdoc
# ruby -v
ruby 1.8.5 (2006-08-25) [i386-linux]

//install rubygems
# cd Download
# wget http://rubyforge.org/frs/download.php/60718/rubygems-1.3.5.tgz
# tar xzvf rubygems-1.3.5.tgz
# cd rubygems-1.3.5
# sudo ruby setup.rb

//install all needed stuff (if necessary)
# sudo yum -y install mysql-devel mysql-server httpd gcc make

//install the rails 2.3.8
# sudo gem install rails -v=2.3.8 --include-dependencies

//confirm versions
# ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [x86_64-linux]
# gem -v
1.3.7
# rails -v
Rails 2.3.8

//stop firewall
$ sudo service iptables status
$ sudo service iptables stop

//start mysql server
$ sudo service mysqld start
$ sudo chkconfig mysqld on
$ sudo chkconfig --list

//install mysql connecter for ruby
$ sudo gem install mysql -- --with-mysql-config

//create database
$ mysql -uroot
mysql> create database demo_development;

//add a application using mysql as db
$ cd ~
$ mkdir work
$ cd work
$ rails demo -d mysql

//create the controller
$ cd demo
$ script/generate controller layout

//add a action
$ vi app/controllers/layout_controller.rb
---
add "def index"
add "end"
---

//start web server
$ ruby script/server
=> Booting WEBrick
=> Rails 2.3.8 application starting on http://0.0.0.0:3000

//confirm from browser url:http://localhost:3000
//if you see "Template is missing" you done