2014年7月10日木曜日

Excelセルの平行移動

使い慣れたら手放せなくなってしまった。

Sub 平行移動1()
    On Error Resume Next
    Selection.Offset(1).Select
End Sub
Sub 平行移動2()
    On Error Resume Next
    Selection.Offset(-1).Select
End Sub
Sub 平行移動3()
    On Error Resume Next
    Selection.Offset(, -1).Select
End Sub
Sub 平行移動4()
    On Error Resume Next
    Selection.Offset(, 1).Select
End Sub

これらを前回紹介した方法でショートカット登録
自分の場合は
Ctrl+Alt+矢印

使うとこんな感じの移動ができる
 選択

  
Ctrl+Alt押しながら↓
 
  

Ctrl+Alt押しながら→
 使い慣れるとExcelデフォルト機能にしてほしいくらい良く使う・・・

2014年7月6日日曜日

EecelでSQLを見やすく

テキストエディタでSQLを強調表示でみればいいじゃん
とは言わないで・・・

Excelで資料まとめたりで見たいときあるじゃない・・・

完成品とは言えないけども・・・
ちょっと作ってみました。

SQL拝借させていただきます。
http://logicalerror.seesaa.net/article/225234014.html


借りたSQLをExcelに貼り付け。

作ったマクロを実行

多少は見やすくなりましたかね・・・?


以下ソース
Sub sqlmojicolor()
ActiveWorkbook.Save
Dim re, mc, m, r As Range, endp, str, myArray() As String
Dim i As Variant

On Error Resume Next
    Set DataRng = Application.InputBox( _
        "・セル範囲は連続していなくても構いません", "データ範囲を指定します", Type:=8)
    If DataRng Is Nothing Then Exit Sub
    On Error GoTo 0

'画面更新停止
Application.ScreenUpdating = False

'予約文字
str = "off,transaction,databasepassword,top,current_user,current_timestamp,current_time,current_date,intersect,setuser,inner,index,identitycol,having,rowcount,collate,holdlock,rowguidcol,column,identity,rule,commit,identity_insert,save,compute,schema,constraint,if,contains,in,session_user,containstable,set,continue,convert,insert,shutdown,count,some,into,statistics,cross,sum,current,join,system_user,key,table,kill,textsize,left,then,like,to,cursor,lineno,database,load,tran,max,dateadd,min,trigger,datediff,national,truncate,datename,nocheck,tsequal,datepart,nonclustered,union,dbcc,not,bigint,binary,bit,char,date,datetime,datetime2,datetimeoffset,decimal,float,geography,geometry,hierarchyid,image,int,money,nchar,ntext,numeric,nvarchar,real,smalldatetime,smallint,smallmoney,sql_variant,sysname,text,time,timestamp,tinyint,uniqueidentifier,varbinary,varchar,xml" & _
      "unique,deallocate,null,update,declare,nullif,updatetext,default,of,use,delete,user,deny,offsets,values,desc,on,varying,disk,open,view,distinct,opendatasource,waitfor,distributed,openquery,when,double,openrowset,where,drop,openxml,while,dump,option,with,else,writetext,procedure,asc,execute,@@identity,encryption,order,add,end,outer,all,errlvl,over,alter,escape,percent,and,except,plan,any,exec,precision,as,primary,exists,print,authorization,exit,proc,avg,expression,backup,fetch,public,file,raiserror,between,fillfac,from,group by,case,select,nvl,begin,exception,others,create,or,replace,package,end;,is,integer,false,true,length,trim,rtrim,raise,rollback;,constant,sysdate;,immediate,substr,to_char,varchar2,return"
    
'配列変換
myArray = Split(str, ",")

'ループ1
Set re = CreateObject("VBScript.RegExp")
    re.IgnoreCase = True          '大文字と小文字を区別しない
    re.Global = True              '文字列全体検索
For Each i In myArray
    '予約語
    re.Pattern = "[^\w.]" & i & "[^_A-z]" & "|" & "[^\w.]" & i & "$" & "|" & "^" & i & "[^\w.]" & "|" & "^" & i & "$"
    Set r = DataRng.Find("*")
    If r Is Nothing Then End
        endp = r.Address
        Do
            Set mc = re.Execute(r)
            For Each m In mc
            '青
                r.Characters _
                (m.FirstIndex + 1, m.Length).Font.ColorIndex = 5
            Next
            Set r = DataRng.FindNext(r)
        Loop Until r.Address = endp
  Next i

'文字列を赤に
    '文字列
    re.Pattern = "'(.*?)'"
Set r = DataRng.Find("*")
If r Is Nothing Then End
    endp = r.Address
    Do
        Set mc = re.Execute(r)
        For Each m In mc
        '赤
            r.Characters _
            (m.FirstIndex + 1, m.Length).Font.ColorIndex = 3
        Next
        Set r = DataRng.FindNext(r)
    Loop Until r.Address = endp

'(を黒太字に
    '文字列
    re.Pattern = "[()]"
Set r = DataRng.Find("*")
If r Is Nothing Then End
    endp = r.Address
    Do
        Set mc = re.Execute(r)
        For Each m In mc
        '黒
            r.Characters _
            (m.FirstIndex + 1, m.Length).Font.ColorIndex = 1
            r.Characters _
            (m.FirstIndex + 1, m.Length).Font.Bold = True
        Next
        Set r = DataRng.FindNext(r)
    Loop Until r.Address = endp

'--をコメント緑に
    'コメント
    re.Pattern = "[\-]{2}.+|[/][\*].+|.+[\*][/]$"
Set r = DataRng.Find("*")
If r Is Nothing Then End
    endp = r.Address
    Do
        Set mc = re.Execute(r)
        For Each m In mc
        '緑
            r.Characters _
            (m.FirstIndex + 1, m.Length).Font.ColorIndex = 10
        Next
        Set r = DataRng.FindNext(r)
    Loop Until r.Address = endp
Set re = Nothing

'画面更新再開
Application.ScreenUpdating = True

End Sub

2014年7月1日火曜日

vba マクロのアドインとショートカット

Sub マクロ名()
 処理内容
End Sub

でマクロを作って他の人に共有したいな、とか
毎回使うマクロだからこのブックに限らず使いたいなんて時は
Excelをアドインとして保存しましょう。
これをExcelのファイル→オプション→アドインから設定してあげると
マクロを保存したブックのみにかかわらず、マクロが使えるようになります。

次に作ったマクロのショートカット変更したいな、とか
俺はこのショートカットがいいけど私はこっちがいいの

なんてなるのを避けるために
Sub Auto_Open()
End Sub()
にはショートカットを割り当てるように記述したほうが楽かもしれない

ショートカットに使えるキーは


BackSpace
{BACKSPACE} または {BS}
Break
{BREAK}
CapsLock
{CAPSLOCK}
Clear
{CLEAR}
Delete または Del
{DELETE} または {DEL}
↓
{DOWN}
End
{END}
Enter (テンキー)
{ENTER}
Enter
~ (ティルダ)
Esc
{ESCAPE} または {ESC}
Help
{HELP}
Home
{HOME}
Ins
{INSERT}
←
{LEFT}
NumLock
{NUMLOCK}
PageDown
{PGDN}
PageUp
{PGUP}
Return
{RETURN}
→
{RIGHT}
ScrollLock
{SCROLLLOCK}
Tab
{TAB}
↑
{UP}
F1 ~ F15
{F1} ~ {F15}
Shift
+ (正符号)
Ctrl
^ (カレット)
Alt
% (パーセント記号)

あとは普通にアルファベット{A}とか{B}

記載方法の例として
Sub test()
 処理内容
End Sub

このマクロをAlt+Shift+Aで呼び出したい場合

Sub Auto_Open()
 Application.OnKey "%+{A}", "test"
End Sub

というように記述すればOK

2014年6月27日金曜日

素敵な人生

映画「素敵な人生のはじめ方 」
をボーっと見ていて
こんなセリフがあった。
たまたま見ただけの映画だけど、個人的に心に響いたセリフだった。


---------------------------------------
なぜ そんなに
私に興味を持つの?

似てるからさ
私とね
もちろん私のほうが
ハンサムだが
君は25歳だったな
だが 老人のようだぞ
結婚にも仕事にも絶望し
子供も あきらめてる
人生のピークは
過ぎたと思い込み
将来を悲観して
何も希望を見いだせない
分かるよ
よく分かる


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

俺も似た様な年齢だけど、ぐさっと来るところがある。
人生これからだよね 。こっからどんどん成長しないとな

世論調査

先日、ポストを覗いたらこんなものが・・・
一番最初に頭をよぎったのは、なんの詐欺だろう? 
そして中身を読んで次に思ったのが「調査員がお伺いし・・・?」
えー。。。来るのかよ、めんどくさい。
そして世の中しらないよ・・・俺
聞く相手間違ってるよ・・・
それ含めて調査なのかな・・・



そして出かけてる間に不在通知の紙がポストに入ってました。
後日また来るってさー(´・ω・`)
次くる予定の日は出かける予定無い事もないけど、まぁ待ちましょう


 

2014年6月15日日曜日

ゲーミングマウス買替

ゴリゴリの廃人ではないので細かいレビューなんて出来ないけども 手は小さく、つまみ持ちの俺が初めて買ったのが
DHARMAPOINT
DRTCM03















 今となってはあまり覚えてないけど、このマウスでDPが好きになった記憶はある。
しかし2年程でチャタリングが発生して次のマウスを探すことに

DRTCM12

そして次に買ったのがこいつ
DPが気に入ったという理由で

こいつをリスペクト使い勝手が若干わるくなった?
けど、我慢できるレベルで使い続けるうちに慣れたが、
またしてもチャタリング・・・
これも2年くらいだったかな

消耗品だししょうがないよね
そして次どうしようかなって思いDP検索したら






マウス壊れる数ヶ月前に
DHARMAPOINTの主要メンバー全員が退職。ブランドは事実上の終焉

あれ・・・・
まだ在庫・・・検索・・・ない・・・


うわー次どうしよう
チャタリングキャンセラ使っても全然効果ない
クリックしても反応ない、反応したと思えばダブルクリック
ドラッグ中に勝手に離されるわ
いい加減イライラも限界に・・・


次はどこにしよう
有名どころの
Logicool
Razer
SteelSeries
あたりにしようか

お手頃価格がいいなー
G300rとか?

ちょいお店で触ってこよーっと


G300r個人的にだめだ
軽すぎるし俺の手にはフィットしない
おもちゃみたい・・・

G100sは意外と手にフィットして
使いやすい、でも4ボタン
これのサイドキーありでマクロありないかなー
他にLogicoolで個人的に気に入るフィット感のが無い

SteelSeriesはすごく評判いいマウスだけど
個人的な感想だとクリックがちょっと重い、もうすこし軽く押せるのがいいな
かぶせ持ちの人が使いやすい形状?俺の手が小さい?欲しいのとはちょっと違うな

Razerはクリック感は好き、フィット感は妥協できる
でもどれも何か、どっか違う

どうしよう。。。




で、悩んだ末
ROCCAT
Kone Pure












こいつのクリック感もフィット感 も一番しっくりくる
さっそく使ってみたけど違和感なく使いやすい

なんか値段が俺の当初の予定から大分オーバーしてるんですけど
3~4kで軽くすますはずが結局7k

歴代のマウス達みると結局これくらいの値段で毎回落ち着いてるのね

そして独特?な機能のEASY-SHIFT[+]

特定のボタン押しながらマウスクリックすると通常と違う機能を割り当てられますよっていう
デフォルトだとサイドボタン押しながら左クリックで戻る、右で戻る
ホイールで音量アップダウンのような感じ

もちろんEASY-SHIFT[+]使わずに普通のマウスのようにサイドボタンで進む戻るもできる

で、慣れるまで使いにくいみたいなレビューもあったけど
・・・全然平気だった

すんなり慣れました
ROCCAT Kone Pureしばらくお世話になります。