2016-01-25 Mon
在宅のお手伝いの仕事の関係で、CGIをいじったり、htmlをいじったりしてます。
CGI(Perl)は正規表現のオンパレードで、チンプンカンプン。
もっぱらサポート掲示板のお世話になってます。
それよりは、まだ、htmlの方がいじりやすいです。
まだ、まだ、コピペ段階ですが、昨日は、input buttonをブリ
ンクさせたくて、ネットでたぐって、やっと、その方法がわかり
ました。
C言語等でいえば、サブ関数を書き入れて、それを呼び出す
イメージですね。
次の手順でできました。もちろん、0から作るのではなく、
動いているものを改変します。
1 <head>~</head>の記述を探す。
2 上記内でさらに
<style type="text/css">~</style>を探す。
3 さらに、<!-- ~ -->を探す
4 3の部分に使いたいcssを追記する。
5 追記したもの
/* 点滅 */
.blinking{
-webkit-animation:blink 1.5s ease-in-out infinite alternate;
-moz-animation:blink 1.5s ease-in-out infinite alternate;
animation:blink 1.5s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
0% {opacity:0;}
100% {opacity:1;}
}
@-moz-keyframes blink{
0% {opacity:0;}
mcxaza100% {opacity:1;}
}
@keyframes blink{
0% {opacity:0;}
100% {opacity:1;}
}
6 効果を持たせたい部分を
<span class="blinking">
と
</span>
で囲む
これだけですが、理解するのに、半日以上かかりました。
CSSの記述は、htmlファイル内に記述する場合と、
*.cssという外部ファイルに記述して、取り込む場合と、
両方あるようですね。
外部ファイルの取り込みにも何種類かやり方があるようです。
この辺は、Cとは、ちょっと違いますね。
という訳で、やっと、目的の装飾(ブリンク)が達成できまし
た。
=追記=
<span class="blinking">は、ブログの編集画面で、
そのまま、書くと、スタイル?の一部と認識されて、
表示されなくなります。
「<」と「>」を半角で表記するには、それぞれ、
&ltと&gt
を使うようです。ちょっと、面倒ですねえ。
2016-01-22 Fri
いつの間にか、足腰がちょっと弱ってしまった愛犬のレオの
ために、また、少しずつお散歩に行き始めました。
足が悪いので、歩くのは嫌いなのですが、本人(本犬?)の
ために、歩く距離を少しずつ増やせればと思います。
過日、お散歩に行ったら、後から、人なつこい?カラスが
一定の距離を置いてついてきます。
レオにおやつをあげて休んでいると、なんと1mか2mぐらい
の近距離まで、近づいてきました。
このカラスは、きっと何回も食べ物をもらって、学習したんで
しょうね。ささみのワンコ用のチップスを投げると、拾って
食べました。車のおいてある所近くまでついてきました。
お散歩にきた公園では、暖冬?のためか、いつもより早く
梅の花が咲いていました。
この週末は寒くなりそうですが、春は、もう、そこまできてま
すね。
この間、冬になったともったら、もう、春の足音が近づいて
ます。時間がたつのがはやいです。
2016-01-19 Tue
VBAと格闘をしていて、最後に保存しようと、「Crtl+S」を押して上書き保存をしようと思うと、なぜか、名前をつけて保存に
なってしまいます。
NETで検索してもひっかかりません。
もしやと思い、ファイル-オプションをたどってみると、なんと
「保存」という項目があるではありませんか。
ここにブックの保存形式という覧があります。ここがデフォルトでは、
マクロを保存しない、「.xlsx」になってます。これで、上書きではなく
て、名前をつけて保存になったようです。
ここを、マクロも記録できる、「.xltm」にすると上書きができるよう
になりました。
もしかして、ここは、「.xlsm」(マクロ有効ブック)でもよかったの
かも。
この設定は、以前のものにはなかったような?,気が。
あったのかな、この辺はちょっと、不確かです。
2016-01-19 Tue
お手伝いでしている仕事の内容は、ある行事の参加者申し込みの受付の処理です。
参加希望者は、HPから申し込みをします。すると。手元に
申し込みのメールが届きます。
このメールを処理して、
1 受講票返信メールの作成・送付
受付日付
受付No
2 受講者一覧表の作成
の一連の作業をします。以前は、この作業を全部手作業
でやってました。
今回の催しの定員が100名ですから、結構な手間です。
そこで、VBAの登場でしたが、やっと次のような手順で
かなりの部分を半自動?にすることができました。
送られてくる自動返信メールのコピー(手動)
↓
エクセルに貼り付け(手動)
↓
必要データーの取り出しと成形(エクセル関数)
↓
一覧表への追加(エクセルVBA)
↓
返信文面の作製(エクセル関数)
受付月日の挿入
受付Noの挿入
↓
エクセルの返信文面のコピー(手動)
↓
メールへの貼り付け(手動)
↓
送信・・・・・・・・・受付完了
これらの作業のなかで、一覧表への追加が一番てまどりまし
た。
その次にてまどったのが受付Noの挿入です。
これは、受付名簿の一覧表から、追加した項目のNoを
読みとることで実現しました。
Worksheets("Sheet1").Range("B" & Range("C4").-
End(xlDown).Row).Copy
Range("J6").Select
ActiveSheet.Paste
表に追加すると、C4の表題以下のセルに種別が追加され
ますので、
Range("C4").End(xlDown).Row)
で、どこのセルが記入済みの最下段(行)か取得します。
この読みとった行とNoの書いてある”B”と&をとって、
該当のNoのセルの番地を作ってます。
Worksheets("Sheet1").Range("B" & Range("C4").-
End(xlDown).Row)
これを、作業セルのJ6にペーストします。
Range("J6").Select
ActiveSheet.Paste
こんな一連の動作で、受付Noを挿入した文面を作りました。
手間取りましたが、ちょっと楽になって、間違いもすくなくなり
そうです。
2016-01-17 Sun
手強いVBAを少しやっつけました。以前にしたことを少し思いだしましたが、未だ手強いのには、
変わりありません。
昨日、やっつけたのは、一定の範囲のセルを表の最下行に
追加でペーストするというものです。
ただ、これだけで、何時間もかかりました。できてみると、
Sub コピー()
Worksheets("Sheet1").Range("K133:O133").Copy
Worksheets("Sheet1").Range("C" & (Range("C4").End(xlDown).Row + 1)).-
PasteSpecial Paste:=xlPasteValues, -
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub
何のことはない、たった、2行です。
K133~O133のセルに書かれているセルの値だけを、表の
最下行にコピーするだけです。
表の最下行を
Range("C4").End(xlDown).Row
で求め、その下を+1で求めます。
エクセルの番地は、英語と数字です。この番地を
Range("C" & (Range("C4").End(xlDown).Row + 1))
で&を使って作ります。
2016-01-16 Sat
在宅でお手伝いをしている仕事関連で、エクセルでの処理を手短にやろうと、久しぶりにエクセルのVBAをいじりました。
やることは、
原本
↓
シートのコピー
↓
振分してシートごとに転記
↓
コピーの削除
これだけですが、0から作ることはできないので、NETと検索
するとちょうどVBAのプログラムがでていました。
Sub 担当者別に振り分け()
Dim OrgWS As Worksheet, TmpWS As Worksheet, CurWS As Worksheet
Dim FromCell As Range
Dim ToCellNum As Integer
Dim CurName As String
'変数初期化
Set OrgWS = Worksheets("Sheet1") '元のデータがあるシート名を指定
CurName = ""
'処理終了まで描画を止める
Application.ScreenUpdating = False
'シートを作業用にコピーして担当者でソート
OrgWS.Copy after:=Sheets(Worksheets.Count)
Set TmpWS = Worksheets(Worksheets.Count)
TmpWS.Columns("A:G").Sort Key1:=Range("A2"), Header:=xlYes
'メイン処理
For Each FromCell In TmpWS.Range("A2", TmpWS.Range("A65536").End(xlUp))
If FromCell.Value <> CurName Then '次の担当者に移った場合
CurName = FromCell.Value
Worksheets.Add after:=Worksheets(Worksheets.Count) 'シートを最後に追加
Set CurWS = Worksheets(Worksheets.Count)
CurWS.Name = CurName 'シート名を担当者にする
ToCellNum = 2 'コピー先セルの行番号を初期設定
OrgWS.Range("B1", "G1").Copy CurWS.Range("A1") 'タイトル行をコピー
End If
FromCell.Offset(0, 1).Resize(1, 6).Copy CurWS.Cells(ToCellNum, 1) 'データのコピー
ToCellNum = ToCellNum + 1 'コピー先セルを一つ下に進める
Next
'作業用シートを削除
Application.DisplayAlerts = False
TmpWS.Delete
Application.DisplayAlerts = True
'描画を再開
Application.ScreenUpdating = True
でした。すぐ動くかとおもいましたが、エラーでだめでした。
ネットで検索をしながら、やっと、動くように手直ししました。
動かなかったのは、多分、掲載してあったVBAは、2003用の
古いものだったのかもしれません。2013では、動きませんでした。
下記が、修正して、私の環境で動くようにしたものです。
Sub 振分()
Dim OrgWS As Worksheet, TmpWS As Worksheet, CurWS As Worksheet
Dim FromCell As Range
Dim ToCellNum As Integer
Dim CurName As String
'変数初期化
Set OrgWS = Worksheets("一覧") '元のデータがあるシート名を指定
CurName = ""
'処理終了まで描画を止める
Application.ScreenUpdating = False
'シートを作業用にコピーして担当者でソート
OrgWS.Copy after:=Sheets(Worksheets.Count)
Set TmpWS = Worksheets(Worksheets.Count) '最後ワークシートを作業用に
TmpWS.Activate
TmpWS.Range("B2:I17").Sort Key1:=TmpWS.Range("C3"), order1:=xlAscending, Header:=xlYes
'メイン処理
For Each FromCell In TmpWS.Range("C3", TmpWS.Range("C" & Rows.Count).End(xlUp))
If FromCell.Value = "終了" Then Exit For
If FromCell.Value <> CurName Then
CurName = FromCell.Value
Worksheets.Add after:=Worksheets(Worksheets.Count) 'シートを最後に追加
Set CurWS = Worksheets(Worksheets.Count)
CurWS.Name = CurName 'シート名を種別名にする
ToCellNum = 1 'コピー先セルの行番号を初期設定
OrgWS.Range("B1", "I2").Copy CurWS.Range("B2") 'タイトル行をコピー
End If
ToCellNum = ToCellNum + 1 'コピー先セルを一つ下に進める
FromCell.Offset(0, -1).Resize(1, 8).Copy CurWS.Cells((ToCellNum + 2), 2) 'データのコピー
Next
'作業用シートを削除
Application.DisplayAlerts = False
TmpWS.Delete
Application.DisplayAlerts = True
'描画を再開
Application.ScreenUpdating = True
End Sub
作業シートの作製までは、うまくいったのですが、このシート
をソートしようと思っても、原本がソートされ、ここを直すのに
まる一日以上かかってしまいました。
目が疲れました。
2016-01-10 Sun
震災の前にDIYで実家に建てた工房(12畳)ですが、外壁の痛みが進んできました。
特に、日の当たる東側が激しいです。
外壁は節約のため野路板を使って、テーブルソーで
ラベッティング加工して、外壁にしました。
はじめからラベテッィング加工してあるのは、確か、3倍以上
の値段がしてたと思います。ただ、安かった分なのか、
木材自体がまだ生乾きで、テーブルソーで、加工しているとき
もダドカッターにしめった切りくずがこびりつきました。
そのままぴったりの間隔で外壁として組み合わせたので、
そのまま乾いて、かなり収縮して、隙間が大きくできた所
もでてきました。
野路板の下には、一応防水紙がはってあるので、直接は
雨水はかからないと思いますが・・・・・・。
収縮したために、所々浮いている場所が見られましたので、
プチ修理ということで、ステンレスのビスでとめ直しました。
キシラデコートも薄くなってきたので、そのうち再塗装するよう
かなと思います。
2016-01-08 Fri
XIDEに開発環境を移した時はv3.10でしたが、まもなくv3.15がでたので、ちょっとたってからVUPしました。
2.3日前でしょうかXIDE操作してるとv3.20のリリースの
バルーンがでてきました。
まだ、VUPはしていませんが、バグフィックス版なのでしょうか、
それとも新しい機能が追加されたのでしょうか。近々VUP
してみようと思います。
PICのプログラムをするのに困ってたのが、「congif」の設定
で、PICの種類ごとに特有?の設定をするのが面倒でしたが
XIDEでは、以下の方法で、自動設定できます。
Window-PIC Memory Views-Configration Bits
とたどります。
すると下記の画面になりますので、
矢印のOPTIONの各項目をクリックします。すると、ON、OFF
等の選択ボックスがでますので、設定に応じて選択をします。
設定が全部おわったら、右クリックをして、
Configration Source Code Outputをクリックすると、
設定してあるPICのConfigのコードが生成されます。
これを全部コピペするとConfigのできあがりです。
2016-01-08 Fri
何十年も前に実家の屋根は、ガルバリューム?の金属の瓦にふき替えました。
今から、何年か前に、金属の瓦の製造メーカーからの指示で
点検をする、という連絡があったので、点検をしてもらいまし
た。
何十年もたってから、点検をしてくれるというメーカーはすごい
と思います。
昨日同じように点検をしてくれるという連絡があったので、
点検をお願いしました。
前回もそうでしたが、製造メーカーが直接点検をするのでは
なく、委託の業者がになるようです。
今回の委託業者には、ちょっと、がっかりです。
なんと、雨樋に直接ハシゴをかけて、平気で屋根に登って
行きました。
別の業者は、ハシゴに材木の端剤をつけておいて、雨樋に
直接の負担がかからないようにして、ハシゴをかけます。
それに、いくら、なれているとはいえ、ヘルメットもかぶらず、
2階の屋根にまで登っていきました。
あれ、もし転落したら、労災の保険はおりませんね。
ということで、修理や補修をする予定はないのですが、
頼むとしても、きてくれた業者にはたのみません。
こんな細かい配慮ができない業者では、信用もできないと
おもいました。
TOP PAGE △