JQuery3覚書 初歩的なこと

歩道を歩いていて、前のヤツがタバコ吸うとこっちは受動喫煙になる。
もっとも、周りに気使う喫煙者は、路上や屋外で喫煙はしない。
路上や屋外で喫煙する奴は基本的にアホです。ハイ。ハッキリ断言します。
周りに人がいる、来るかもしれない場所での喫煙はやめましょう。ただの迷惑。

久しぶりの投稿の冒頭がこれかい!って感じですが、いつになったら分かるんでしょうねって思うので書いてみた。

で、JQuery。
今使っているのはバージョンは3.3.1。
色々データをこねくり回さなければいけないということで、ネットを検索しながらHTML/CSS/JSのファイルを作成。
今頃気づいたのだが、JavaScriptとJQueryは別モノ。
当たり前なのだが、JQueryで取得した要素に、JavScriptの標準メソッドを適用させようとするとエラーになる。

$('#table1').innerHTML 

これはダメ。左はJQuery、右はJavaScript標準。

$('#table1').html()

これはJQueryの記述方法で、OK。

document.getElementById('table1').innerHTML 

これはJavaScript標準の記述方法で、OK。

という話なのである。

松竹新喜劇パート2

9月の大阪松竹座の公演は松竹新喜劇の70周年記念公演。

松竹新喜劇70周年
松竹新喜劇70周年

見てきた。

よかった。
めっちゃよかった!

『人生双六』
感動!
自分が子供のころTVでみたのは、藤山寛美・高田次郎だったように記憶している。
当然今はキャストが変わっていて、行ったときは扇治郎・植栗コンビだった。
(役替わりで次の日は扇治郎・天笑だったらしい。天笑さんのも観たかった!)

昔ながらの芝居を今の人がやるっていうのは、なんだか嬉しいな。
ずっとこういう芝居が続いていってほしいな、と改めて感じた。
ただ、若いからか芝居にまだ遠慮が感じられる。もっとぐぐっと思い切って演じてもいいようにも思う。

~ご挨拶~
いやぁ、高田次郎、小島慶四郎米寿コンビが元気で何より。
小島さんはイマイチおぼつかないが、高田さんのあのしっかりした姿はすごいな。
いい歳の取り方をしている人の代表だなぁ、としみじみ。

そして文童さん。
久しぶりに見たけど、この人もいい歳の取り方してるなぁ。
天外・文童2枚看板だったころは、自分はまだ若くてとても芝居を見に行くなんてできなかった時期だった。
たぶん、世の中も結構大変な時期だったと思う。
でも、そういうときにメンバーもそうだけど一生懸命頑張ってくれてたおかげで、今私たちは松竹新喜劇をみられるんだと思うと、本当に皆さんありがとう!と感謝しかない。

『八人の幽霊』
この演目は初めて見た。
寛太郎さんメインのお芝居。
天外さんがワンポイントで出てくるんだが、ちゃんと魅せてくれる。さすが。
楽しいお芝居だった。

2019年の1月もまた、新喜劇やるそうなので、こちらも観にいく!
絶対観にいくぞ!

Excel VBA覚書 クリップボード

クリップボードに文字列を貼り付けるときに、貼り付かないケースがあったので、
別の方法を調べてみた。

String型変数 buf の内容をクリップボードに設定するということで・・・
a) DataObjectを使う方法1

        Dim cb As Object
        Set cb = New DataObject
        cb.SetText buf
        cb.PutInClipboard

b) DataObjectを使う方法2

        With New MSForms.DataObject
            .SetText buf
            .PutInClipboard
        End With

c) TextBoxを使う方法

       With CreateObject("Forms.TextBox.1")
          .MultiLine = True
          .Text = buf
          .SelStart = 0
          .SelLength = .TextLength
          .Copy
        End With
        If cb.CanPaste Then cb.Paste

Access覚書 リンク貼替

結構間が開いてしまった。
1か月に1度ぐらいはせめて投稿しようと思いつつ。

テーブルやらクエリやらがAサーバのDBをみているのだが、Bサーバのテスト環境のDBをみるように変えたい
となったとき、結構大変である。
標準機能で変更できるのかどうか、やり方がわからん。

ということで、VBAでできないか探してみたら、やはり一括でどべっと変更できるやり方があった。

' テーブルとクエリのリンク先を変更
' 引数 :from_srv = 変更前(例:172.0.0.1)
'    :to_srv   = 変更後(例:196.128.1.10)
Sub ChangeLinks(from_srv As String, to_srv As String )

    Dim db As DAO.Database
    Dim tb As DAO.TableDef
    Dim qr As DAO.QueryDef
    
    Set db = CurrentDb
    On Error Resume Next
    For Each tb In db.TableDefs
        If tb.Connect <> "" Then
            tb.Connect = Replace(tb.Connect, from_srv , to_srv)     'サーバ変更
            tb.RefreshLink  ' テーブルはリフレッシュ
        End If
    Next
    For Each qr In db.QueryDefs
        If qr.Connect <> "" Then
            qr.Connect = Replace(qr.Connect, from_srv , to_srv)     'サーバ変更
        End If
    Next
End Sub

パスワードとかだと、
Replace(tb.Connect, “PWD=***”, “PWD=***”)
ってな感じで変換してやる。

松竹新喜劇

大阪人だからか、新喜劇が好きだ。
といっても、吉本の、ではなく松竹の。

子供のころは週1必ず舞台中継(録画)をやっていて、それを毎週欠かさずといっていいほど観ていた。
そのせいか、やはり今でも「松竹新喜劇」をみたいのである。
吉本はお笑い優先でちょびっと人情もんなんだけど、松竹はどっちかというと人情もんプラス笑い。

で、新喜劇が松竹座であるっていうから観にいってみたのだが、なんだかミュージカル?活劇?。
「新喜劇も進化したんだなぁ~」とは思ったのだが、なんだか「松竹新喜劇」じゃなかった。
なんか違った。

こんなんじゃないんだよ、松竹新喜劇は・・・

客層も思ってたのと違うし。なんか、ミュージカル客ばっかり。
ミュージカルの観方はそうなんだろうけどね、新喜劇の観方はちょっとちゃうんやで、と思った。

ミュージカルの客ってのは、なんというか、厚かましいんだな。
セリフもうしゃべってまっせ!ってなときも拍手でセリフが聞こえないわ、拍手で芝居の流れも止めてるわ。
そして、終了のアナウンスがあってもまだアンコールしてる。
終了のアナウンスがあったら、出ていけってことやねん。分らんかな、そういうの。ほんま、遠慮せんな。

ふん、そうさ、私の心の狭さは人一倍だよ。
でも、いままでいろんな舞台を見てきたけど、ミュージカルは出ている演者も客もそういう厚かましい人の寄せ集めなんだなぁ、と思う。

だって、矢鱈目ったら手拍子するよね、ミュージカル客。
演者は演者で、客がのせてくれたら演者もノリよくパフォーマンスができる!みたいなこと平気で言うし。
気持ちはわからなくないけど、客がどうだろうが、自分が盛り上げればいいんだよね。
そういうことちゃんとやる人に仕事がくるんだから。

ということで、新喜劇がみたいんだよ!って調べたら、9月に新喜劇をやるらしい!
よっしゃ、ほんまもんの新喜劇みせてもらいまひょ!
ということで、9月はリベンジするぜ。

やっぱりパンが好き

新しい年度の始まり。
ここ最近は、春というよりなんかいきなり初夏!な感じだったが、まだ肌寒かったりもする中途半端な季節。

最近中津(大阪ね)に行く機会があったのだが、中津ってのはいいね。なんだか。

大きな企業がいっぱいあって、梅田もすぐそばなのに、なんか庶民的。

で、「セ・シュエット」というケーキ屋みたいなパン屋が目に入ったので、さっそく入ってみる。
なんか、ショーケースもケーキ屋!でもパンが並んでる。
いや、ケーキみたいなパンもあるし、お菓子も置いてある。

で、パオガオサンドみたいな名前のバーガーっぽいサンドと、他に何個か購入して試し食い。

うまい!

あぁ、特にパオガオサンドは、あんまし東南アジア風味はしないのだが、バランスがいい。
パンのもちもち感も具にあっている。

あぁ、こんなパン屋近所に欲しい。
中津に引っ越そうかな・・・

舞台『黒蜥蜴』

2月の初めに中谷美紀主演の『黒蜥蜴』をみてきた。

スタイリッシュな黒蜥蜴で、かなり良かった。
何がいいかって、舞台の使い方。演出がすごくいいんだなぁ。
舞台装置も衣装も抜群に良くって、で、中谷美紀をはじめとする出演者もよくって・・・

う~ん、悪いところっていうか、もうちょっとっていうところは、セリフ回しかな。
もう少し抑揚があると、日本語の美しさがより引き立つような感じもする。
でも、ここはあんまりやりすぎると返ってバランスが悪くなりそうなので・・・

となると、やっぱり「良かった!」というしかない訳である。

ということで、この何年かは色々舞台を見てきたが、ここで終了。
やっぱり、観劇はいいのだが、なんせお金がかかる。
AやBの席でみればいいのかもしれないが、やはりS席で観たいとなると結構かかるので、1年に1回ぐらいにとどめておかねば、

「老後の資金が!」

ってなりますな。
節約、節約!

ExcelVBA覚書 Transport関数をうまく使う

SQLを実行してきてデータを取得するまではよいのだが、その後シート上に出力するときに異様に時間がかかる場合がある。
で、端末個体の理由は置いといて、複数のワークブックを開けていた場合に起こるのであれば、対策は、

 処理中は必要なとき以外「自動計算」させない!

ということらしい。

With Application
    .ScreenUpdating = False
    .Calculation =xlCalculationManual
    .EnableEvents = False
End With

としておけば、
 画面を更新せず、
 再計算させず、
 イベント有効にしない
とできるわけである。
これで、余計なイベントも発生しないので良いのだが、再計算してほしいときにはCaluculateメソッドを発行しておかねばならない。

で、Application.Calculation = xlCalculationManualをせず、シート上にバサッと出力したいなぁ~などと思っていたら、

 WorksheetFunction.Transpose()

シート関数のTRANSPORT関数を使って、引数に出力したい配列を設定することで、ドバっとあっという間に出力できてしまうやり方を紹介しているページがあったので、ありがたやありがたやとやってみたところ、本当にあっさりとドバっと出力された。

参考URL:エクセルの神髄「マクロVBAの高速化・速度対策の具体的手順と検証」

入れる配列は(横、縦)の状態にして、Transport関数で縦横逆にして出力!ってなことになっている。
ありがたやありがたや!

SQLServer覚書 Export/Import

SQLServerはテーブル指定のバックアップができない?

ってなことで、エクスポートとインポートをお勉強。

1) Export

BCP {DBName}.{scheme}.{Table} out c:\table1.txt -c -S localhost -U {user} -P {pwd}
BCP "SELECT * FROM {DBName}.{scheme}.{Table} WHERE 1=1" queryout c:\table2.txt -c -S localhost -U {user} -P {pwd}

1つ目はテーブルそのまま。テーブル指定後は、「out」を指定して、エクスポート先ファイルを指定してExportする。
2つ目は条件句で範囲を指定してその分だけデータをとってくる方法。こっちは「queryout」でExportする。
いずれも、その後ろは接続先とユーザ名・パスワードを設定。

2) Import

BCP {DBName}.{scheme}.{Table} IN c:\table1.txt -c -S  localhost -U {user} -P {pwd}

インポート先を指定後、「IN」でインポート元ファイルを指定。
こちらもインポート先のDB接続情報を後ろに入れる。
挿入するので、主キーが重複しないようあらかじめ削除しておくこと。

モチの論、BCP.exeがないと動きまヘン。

SQLServer覚書 比較設定

SQLServerはそのDB設定によって、大文字小文字や半角全角を意識しないとのこと。
つまり、’A’ = ’a’ は True になるわけ。
現在の設定を確認したい場合は、以下のようなSELECT文を実行する。
({DBNAME}のところに対象DB名を入れる)

SELECT DATABASEPROPERTYEX('{DBNAME}', 'collation');

これはこれでいいんだが、で、意識したいときはどうすんの?って話で、

SELECT * 
FROM foo
WHERE x = 'X' COLLATE Japanese_CS_AS
AND   y = 'Y' COLLATE Japanese_BIN;

と、まぁこんな風に条件項目ごとに設定をしていくとのこと。

BINやCS、AS、KS等の違いは以下参照。
Windows 照合順序並べ替えスタイル

Struts2覚書 JSP上での変数定義

Struts2でjsp上に変数を定義したいなぁ・・・と思った。
普通はこんな使い方しないんだろうけど、同じ文言が何度も出てくるときに全部直すのは面倒だな、と思ったら、やはりどこかで指定してやるほうが楽だよね!と安易に考え調べた。

 <s:set var="変数名" value="初期値" />

これだ!前にもカウント変数として使ったことがある。
だけど、文字列を設定したことがないんだ。どうすればいい?

<s:set var="baseName" value="'あいうえお'" />

なるほど。ダブルクォーテーションの中にシングルクォーテーションで文字列を括ればよいのか!

ラ・メール・プラール(東京)

前々から食べたかったスフレオムレツを東京に行ったついでに食べてみる。
平日のランチ時を過ぎた時間帯だったからか、何とも閑散とした空間だった。
ランチは税込みで2000円弱なので、まぁそうそう来れない場所だろう。

ラ・メール・プラール スフレオムレツ
で、お目当てのスフレオムレツのついたランチを頼んでみる。
まずはスープがやってきた。やたら大きい。その辺の洋食屋の倍ほどの量のスープをバケットをつまみながら飲んで、その段階でもう結構お腹が膨らむ。

で、食べ終わると程なくスフレがやってくる。

デカッ

こんなでかいんだ。食べきれるだろうか・・・

まぁ、半分ぐらい空気なわけなので、食べきれない訳はないのだが、ハッキリ言って

半分でええわ!

な、お味だった。何というか、何というか・・・
卵の殻付きだし、味は淡泊というわけではないが、塩っ気を感じるところとないところの差がありすぎて、(ソースでカバーするんだろうけど)しょっぱいところはしょっぱすぎるし、泡状態になっているところはただの泡だし・・・
いや、不味いわけじゃないんだけど、これにお金出すのは生涯で2,3回でいいな・・・と思わせる味だった。

東京って、バカ高いよね・・・そんなことを思いながら、昨日食べた1000円弱のラーメンは、また食べに行こう!と懲りない大阪人は東京を後にした。

グランツーリスモがやってきた

いい歳してTVゲームなんてね・・・

なんて、PS3を売ったのは遥か昔のような。

ソニーストアでグランツーリスモの体験をさせてもらったら、そんなん遥か彼方へ吹っ飛んでしまった。

PS4買おう!
グランツーリスモ買おう!
ハンコン買おう!

全部買ったら10万以上になった・・・
大人になったね、私!

これからは服も買わない!
家具も買わない!
カワイイ小物も・・・たぶん買わない
たまに腹いっぱい食べて贅沢するけど、それ以外でお金を使わないようにしよう、うん。

ということで、届いたグランツーリスモSPORTSでトレーニングモードをやってみる。
四十の手習いとはよくいったものだ。
40過ぎて、ドライビングテクニック(TVゲーム上)を学んでいる私。
結局、しょっぱなから4時間ぐらい遊んでしまった。
いや、遊んでいるのではない。学んでいるのだ!!

誰への言い訳なのかわからんが、自分への言い訳をしておこう。
HTML5の勉強も継続しないといけないから、スケジュールを組んだ方がいいな・・・

ExcelVBA覚書 図形コピー

ワークシート上にある「SHP1」という名前の図形をコピーして、「SUB_SHP1」という名前を付け、B2セル内に配置するロジックを考えてみた。
コピー元の図形のDuplicateメソッドをつかって、新しい図形(コピー先:以下サンプルでは変数「shp」のこと)を作り、その新しい図形のプロパティをいじって、図形の位置とか、図形の名前、図形に紐づくマクロの設定などを行う。
サンプルでは、セルB2の下部中央に配置する方法。

Dim ws  As Worksheet
Dim shp As Shape

Set ws = Thisworkbook.Worksheets("Sheet1")
Set shp = ws.Shapes("SHP1").Duplicate
With shp
  .Top = ws.Range("B2").Top - .Height -5
  .Left = ws.Range("B2").Left + (ws.Range("B2").Width - .Width) / 2
  .Name = "SUB_SHP1"
  .Visible = msoTrue
  .OnAction = "RunXXX"
End With
Set shp = Nothing
Set ws = Nothing

図形のコピーに「Duplicate」を使うというのは初めて知った。duplicateの意味が「複写する」ってことらしい。

久しぶりに錦市場にいったら・・・

錦市場に行ってきた。
いっぱい食べ物を買ってしまったが、「なんか、値段高くない?」
で、立ち食い・歩き食い用のもんばっかりが目についたんだけど、「なんか、質落ちてない?」

ヨーロッパの人とかだと物価が高いのは慣れっこだからそうでもないんだろうけどね、なんかレベルが下がった感たっぷりで、もう行く気もなくなってしまった。

とはいえ、まぁいろいろ面白いものもあったし、うまいものもあったから、まぁいいっちゃいいねんけど。

「で、あなたたち、ホントにそれでいいん?」と、ちょっと大きなお世話なことを思ってしまった。

VMware覚書 仮想マシンWin2000 Proを作成する

Windows2000をVMWareに入れるときに困ったのは、
1) Windows10、VMware Workstation 12 Playerでやると入れられなかった。
2) Windows7、VMware Workstation 12 Playerでやると入ったが、
 Windows2000(SP4)だけではVMware Toolsが入らず修正プログラム「KB835732」が必要だった。

というこの2点。

1つ目は、当該の仮想マシンの設定で、プロセッサの優先モードを「Intel VT-x or AMD-V」か、「Intel VT-x/EPT or AMD-V/RVI」にする。

2つ目は、以下のアップデートファイルをインストールする。
Windows 2000 用セキュリティ問題の修正プログラム (KB835732)
http://www.catalog.update.microsoft.com/Search.aspx?q=KB835732

で、解決!

AccessVBA覚書 IsNumeric関数

数値(整数)チェックをしようと、

Function CheckNumber(v as Varient) As Boolean
  CheckNumber = True
  If Len(v)=0 Then Exit Function
  If IsNumeric(v) Then Exit Function
  CheckNumber = False
End Function

とか記載したら、vに「a」とか入れてもTrueで返ってきてしまった。

Function CheckNumber(v as Varient) As Boolean
  CheckNumber = True
  If Len(Cstr(v))=0 Then Exit Function
  If IsNumeric(Cstr(v)) Then 
    If InStr(Cstr(v),".")=0 Then Exit Function '小数じゃなかったら(簡易チェック)
  End If
  CheckNumber = False
End Function

みたいに、文字列に変えてからIsNumericしたらうまくいった。
関数の引数を文字列型にするってのも手だけど、簡易版なのでこれでいいかなと思った。