実はFTPサーバが変わってからFFFTPで接続できてなかったのだが、やっとこさ理由がわかった。
前はパッシブモードをONにしなければならなかったのだが、今はOFFにしなければならなくなった。
で、無事にアクセスできた・・・
って、何ヶ月かっかっとんねん!
(Web版の簡易FTPでやれてたんだから、まぁよいんだけど)
月: 2015年2月
ExcelVBA覚書 セルにコメントをつける
セルにコメント(ふきだし)をつけるやり方。
Dim rng As Range Dim msg As String Dim clear_flg As Boolean '選択中のセルにコメントを追加していく Set rng = ActiveCell msg = "あいうえお" clear_flg = False 'コメントを刷新するときはTrueに変える On Error Resume Next If Not rng.Comment Is Nothing Then If clear_flg Then rng.Comment.Text msg '刷新 Else rng.Comment.Text rng.Comment.Text() & vbNewLine & msg '追記 End If Exit Sub End If '新しいコメントを追加する With rng.AddComment(msg) .Shape.TextFrame.Characters.Font.ColorIndex = 2 'フォントは白 .Shape.TextFrame.Characters.Font.Size = 9 .Shape.TextFrame.AutoSize = True .Shape.Fill.ForeColor.RGB = RGB(0, 0, 0) '背景は黒 .Visible = True End With
clear_flg=Trueならば、コメントは置き換わるが、Falseならば改行して追記していく。
なので、コメントは自動サイズ設定(AutoSize=True)にしておく。
ExcelVBA覚書 正規表現
私が苦手なものの1つ「正規表現」
いつまでも逃げられないので、がんばってみた。
まずは整数
'整数(上限が5桁 -99999~99999はOK) Dim rng As Range '対象セル Dim res As Boolean '結果 Set rng = ActiveCell '選択しているセルをチェックする Set reg = CreateObject("VBScript.RegExp") With reg .IgnoreCase = True '大文字小文字は関係ない .Global = True '全体をチェック .Pattern = "^[-]?[0-9]{1,5}$" If .Test(rng.Value) Then res = True Exit Function End If End With
次は実数
こいつがややこしくて、整数のときと実数のときとで分けてやらないといけない
.Pattern = “^[-]?[0-9]{1,3}[.]?[0-9]{0,2}$”
だけにすると整数4桁、5桁の数値もOKになってしまった。
'実数(上限が5桁 -999.99~999.99はOK) Dim rng As Range '対象セル Dim res As Boolean '結果 Set rng = ActiveCell Set reg = CreateObject("VBScript.RegExp") With reg .IgnoreCase = True .Global = True '整数の場合のチェック .Pattern = "^[-]?[0-9]{1,3}$" If .Test(rng.Value) Then res = True Exit Function End If '実数の場合のチェック .Pattern = "^[-]?[0-9]{1,3}[.]{1,1}[0-9]{0,2}$" If .Test(rng.Value) Then res= True Exit Function End If End With
そして、英数字のみ
'英数字のみ(上限が5桁で、半角のみ、大文字小文字OK) Dim rng As Range '対象セル Dim res As Boolean '結果 Set rng = ActiveCell Set reg = CreateObject("VBScript.RegExp") With reg .IgnoreCase = True .Global = True .Pattern = "^[a-z0-9]{0,5}$" If .Test(rng.Value) Then res = True Exit Function End If End With
ExcelVBA覚書 名前定義を削除する
Excelで数式やマクロを使うとき便利だからと名前を定義する人がいるが、本当にやめてほしい「悪習」だと私は思う。
なぜかって、シートのコピーするたびにグチグチ名前重複してもいいか聞いてきて、「もう好きにしろよ!」って思っても、ずぅ~っとすべての名前について聞いてくるのが、まぁ性質の悪いこと、悪いこと!
そういうことがわかっていれば、簡単に名前定義は使わないと思うのだが、まぁ使ってますな・・・
で、削除しちゃえ!
※ 2021/03/03 ブック内の名前定義を削除させるロジック追加
Sub DeleteNamesExcludePrintX() Dim ws As Worksheet Dim nm As Name ' シート内の定義(Printから始まる名前定義は印刷設定なので除外) For Each ws In ThisWorkbook.Worksheets For Each nm In ws.Names Debug.Print nm.NameLocal & ": " & nm.Name If nm.Name Like "*Print_*" Then Else nm.Delete End If Next Next ' ブック内の定義 For Each nm In ThisWorkbook.Names Debug.Print "** " & nm.NameLocal & ": " & nm.Name nm.Delete Next End Sub
削除するのはいいんだけど、印刷設定まで消すとまずいので、「Print_」から始まる名前は消さないでおく。
(印刷範囲と印刷タイトルが該当する)
ただし、マクロとか数式とかで使ってたらエライコトになるのでご注意を。
HTML5プロフェッショナル認定資格 Level1
という資格がある。
Level1があるということはLevel2もある。
しかし、Level3は今のところない。
で、Lv1とLv2の認証票を2つくっつけると丁度図柄がそろうので、Lv1を受けようと思ったならば、それはLv2も受けなきゃという話になる。
というか、両方ともとらないと、HTML5+CSS3+JavaScriptという、Web開発者としてのスキルとしてはいささかアピールする意味がないのである。
と、奮い立たせてLevel2の試験準備に入ろうとしている。
(まだ、足は踏み入れていないが、とりあえず教科書は買った)
・・・・・・・・・・・・・・・・+・・・・・・・・・・+・・・・・・・・・・・・・・・・・
ということで、Lv1を受けてきて、まぁ合格したのだ!!
いや、まぁ今まで受けてきた簡単な試験の中でも、簡単なほうなんだろうね・・・とタカをくくっていた私が間違いでござったことでござる。
75点とかそのへんだったな・・・合格ラインが70点で。
しょっぱなから、
「こんな話知らんぞ!」
(って、一応本には載ってたんだけど星1個だったから、すっ飛ばしたんだよね、確か)
というような問題ばっかり出て、もう見返したところでわからんもんはわからんし!とプチっと終了させたんだよね。
合格って見たときはほっとしたけど、あまりに出来が悪くって、これじゃLv2なんてどうなんのよ?
だって、Lv1でこんなの見てもしょうがないっていわれている教本のLv2バージョンしかテキストがないんだよ!!
って、愚痴を言っているとたぶんまともな、いやまともに近いテキストが出てきてくれると信じて勉強し始めよう。
ExcelVBA覚書 どのボタンを押した?
シート上にある複数のボタンから1つのサブプロシージャを起動するときなんぞに、どのボタンを押したのかわかればよいなぁ~と調べたら、意外と簡単にできるらしかった。
[ A ] [ B ] [ C ]
って3つのボタンがあって、それぞれ名前(ShapeオブジェクトのName)を「A」「B」「C」とつけておく。
(図形 1とか、ボタン 1とかの名前を変えてやるのだ。もちろん、そのままでもいいけど。)
で、これらのボタン全部 にマクロ登録して、AbcButton_Click() を実行させるとすると、
Sub AbcButton_Click () Dim buf As String buf = Application.Caller Select Case buf Case "A" Msgbox "Aが押された!" Case "B" Msgbox "Bを押しましたね" Case "C" Msgbox "Cなんですか?" End Select End Sub
という感じで、Application.Callerがボタンの名称を教えてくれるので、そこから分岐させる処理を記述すればよい。
ん~、もっと早く知っとけばよかった。
できないだろうという思い込みはよくない。実によくない!