■初めに: 蔵書の発売日や何巻まで買ったかをイチイチ本棚に見に行くのは面倒。既製のエクセル蔵書録はイマイチ。そこで自分で作ってみた。

■入力画面: (詳細確認画面)
・ 入力操作は超簡単。データサイト画面をコピーしてボタンを押すだけで瞬時に取り込み。同ISBNや著者違いなど既存記録との不整合を警告するなど機能も充実。

 ↑ ボタン一つで各種記録を瞬時に取り込み。

 

取込先のデータサイト

 

■蔵書記録:

・ 各種操作は蔵書録以外で行う安心設計。

 

■充実の検索機能:

・ キーワード検索。 全文/項目指定。
・ 発売期間を指定する。
・ 最終巻のみをリストアップ。
・ 巻の連続性が途切れていたら警告。
・ キーワードBoxにワンボタンでセル内容を取り込む。
・ 内容紹介をポップアップ。
・ 定価の合計をポップアップ。達成感向上?
・ 並び替え。
・ 修正した複数行
を、行き先がバラバラの蔵書記録へ一度で上書き。
・ ネットでキーワード
を簡単検索。 アマゾン、楽天市場、ヤフーショップ、ヤフオク、メルカリ、ネットオフ、グーグル。本に限らず一般商品名をキーワードにして検索しても便利。
・ 最終巻の次の巻を表示。ネット検索で超便利。例えばコナンを80巻まで持っていた場合は「コナン 81」を表示する。これを「ggl」ボタンでグーグル検索。
 

 ↑ 検索・操作用の画面

 

 ↑ 内容紹介をポップアップ。こんな長文でもサイトからの取り込みは一瞬。

 

 ↑ 一覧画面の全景

 

■感想:
取り込みは1冊10~20秒。1500冊でも頑張れば1日。検索機能は結構便利。ここまでの機能を備えたソフトは他にない(ような気がする)。ネタとしてはいい感じ? てへぺろ

 

こちらもどうぞ。

 

キーワード: 蔵書録 蔵書記録 蔵書整理 蔵書リスト 蔵書検索 蔵書管理 読書記録 読書録 書籍管理表 図書管理 CD管理 マンガ 漫画 コミックス Microsoft Office Excel エクセルVBA ISBNコード バーコードリーダー データベース データ化 インターネットからダウンロード サイト検索機能アプリ 自宅の本を管理する アメーバブログ アメブロ ameba ameblo

 

はじめに: 鉛筆の長さは約18cm。10cm程になると持ちにくくなる。これを捨てるのはもったいない。そこで短くなった鉛筆を繋げる3つの方法を試してみた。

--------------------------------------
■ ① 単純に接着剤でくっつける(両削り)
方法: 2本の尾側をセメダインsuperXくっつける。木工用ボンドでは弱い。
長所: 安価で簡単。接続部近くまで使えることもある。
短所: 使用中に折れることがある。これを再接着してもまた折れ易い。

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

■ ② TSUNAGOを利用(片削り)
方法: 市販のTSUNAGO(約2700円)を使う。詳細は他サイトに多数あり。
長所: 格好が良く、しっかり接続できる。
短所: 作業が超面倒。力も時間も必要。手が黒く汚れる。コスパが悪い。安い鉛筆だと、200~300本以下では採算割れ。リサイクル系の鉛筆は尾側の穴あけで割れる。成功率は約2割?(リサイクルではない普通の鉛筆だと割れにくい感じ)

  

--------------------------------------
■ ③ 電動ドリルを利用(両削り) 自分で考案した Original Method 
方法: 尾側に2.5mmドリルで深さ1cm程の穴を開け、適切な長さにカットし木工用ボンドをつけた爪楊枝を差し込んで2本を接続。
長所: TSUNAGOよりも短時間で、力も要らない。強度は上記の中間くらい。
短所: ドリルの扱いに慣れていないと危険。尾側の中央に真っ直ぐドリルするのは相当な技術が必要。2.5cc注射器と輪ゴムで工夫したが、完全な真っ直ぐは難しい。

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

いずれも一長一短だった。

 

留意すべきは手間やコスパ。安価な鉛筆だと節約できるのは1本あたり10円ほど。
初回は接着剤で接続し、それが折れたら処分するくらいが良いかもしれない。
TSUNAGOや電動ドリルはリサイクルに強い信念がある場合のみ検討か?

 

最終結論: 太さなどにこだわりが無いなら100円程度の鉛筆ホルダーが現実的な解だと思う。

 

 

 

 

 

VBAでセルに関数や式を入れたい。

ちょっと違うのは文字列を組み合わせている点。

=COUNTA(B1:B100)&"文字" ←この関数をVBAで設定したい。

Range("A1").Formula = "=COUNTA(B1:B100)"        
 'いける
Range("A1").Formula = "=COUNTA(B1:B100)&"文字""  'エラー

何故だ!?

「""」として(2個並べて)、区切りではなく「"」であることを示す。
この作法をすっかり忘れていました。


Range("A1").Formula = "=COUNTA(B1:B100)&""文字""
できました。

(^^;

 

■動機
VBAでは「?」となって扱えない空白や文字を何とかしたい。

■状況
WEBから読み込んだ文字がエクセルVBAで扱えない。
下の「」内は、VBAではいずれも
「?」になってしまう。
「〜」   ←VBAにコピペすると?になります。
「 」    ←ここでは正しいようですがWEB取込では?です。

 

この空白はReplaceやTrimを使っても削除できません。空白のように見えても空白ではないようです。このままではこれらを区別することすらできません。

■解決策
下記の1)→2)を順に行う。

1) ASCW関数で文字コードが何かを調べる。
字Code=AscW(対象字)

2)文字コードで、変換したい字にReplaceする。
Replace(対象字, ChrW(字Code), "変換字")


■実例
「〜」→ Replace(Str, ChrW(12316), "~")
「 」→ Replace(Str, ChrW(160), "") '削除する場合


■感想
同じサイトでもページにより文字種が違ったりする。
下記のサイトに助けられました。
https://vba-create.jp/vba-ie-error-nbsp/

 

 

 

 

 

 

 

 

■動機
エクセルVBAで半角カタカナを全角に変換したい。条件は下記。
・ 半角英数は半角のままとする。
・ 濁点は、ガ(2字)→ガ(1字)とする。

・ 濁点は、ガ(2字)→カ゛(2字)は不可。 

サイトを探したが見つからない、上記条件を満たさない、コードが難しいやら長いやら、解説も難解長文。素人の自分にはもっと短くて分かり易いコードが欲しい。低速でも構わない。力技で解決した。改行ナシなら僅か9行。調整も容易。
---------------------------------------
Sub 半角カタカナを全角に変換()

    対象字 = "アガャAaあ1バ"                
 '(確認用)
         
    半カナ = "ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ" _
                & ",ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ,サ,シ,ス,セ,ソ,タ,チ,ツ,テ,ト,ナ,ニ,ヌ,ネ,ノ" _
                & ",ハ,ヒ,フ,ヘ,ホ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ,ラ,リ,ル,レ,ロ,ワ,ヲ,ン" _
                & ",ァ,ィ,ゥ,ェ,ォ,ャ,ュ,ョ,ッ,ー,。,「,」,、,・"    
 '濁点文字は最初に置かなければならない。
    
    全カナ = "ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ" _
                & ",ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ,サ,シ,ス,セ,ソ,タ,チ,ツ,テ,ト,ナ,ニ,ヌ,ネ,ノ" _
                & ",ハ,ヒ,フ,ヘ,ホ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ,ラ,リ,ル,レ,ロ,ワ,ヲ,ン" _
                & ",ァ,ィ,ゥ,ェ,ォ,ャ,ュ,ョ,ッ,ー,。,「,」,、,・"
        
    半角配列 = Split(半カナ, ",")
'Splitで分けて格納
    全角配列 = Split(全カナ, ",")

    For aaa = 0 To UBound(半角配列)  
 '要素数=UBound:半角=全角。
        対象字 = Replace(対象字, 半角配列(aaa), 全角配列(aaa))
    Next aaa
    
    Range("A1") = 対象字              
     '(確認用)

End Sub

 


 

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


■感想
ガ→ガ(2字→1字)はかなり大変だった。 

上記コードは自分の中では「決定版」。

 

お役に立ったら、励みになるので「いいね」をお願いします。 m(__)m

 

■おまけ

上記と同時に、全角英数→半角英数も変換してみた。
--------------------------------
Sub 何でも好きに変換するコード()

    対象字 = ",iアガャAaあ1バ"

    半カナ = "ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ" _
                & ",ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ,サ,シ,ス,セ,ソ,タ,チ,ツ,テ,ト,ナ,ニ,ヌ,ネ,ノ" _
                & ",ハ,ヒ,フ,ヘ,ホ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ,ラ,リ,ル,レ,ロ,ワ,ヲ,ン" _
                & ",ァ,ィ,ゥ,ェ,ォ,ャ,ュ,ョ,ッ,ー,。,「,」,、,・"      '濁点文字は最初に置かなければならない。
    
    全カナ = "ガ,ギ,グ,ゲ,ゴ,ザ,ジ,ズ,ゼ,ゾ,ダ,ヂ,ヅ,デ,ド,バ,ビ,ブ,ベ,ボ,パ,ピ,プ,ペ,ポ" _
                & ",ア,イ,ウ,エ,オ,カ,キ,ク,ケ,コ,サ,シ,ス,セ,ソ,タ,チ,ツ,テ,ト,ナ,ニ,ヌ,ネ,ノ" _
                & ",ハ,ヒ,フ,ヘ,ホ,マ,ミ,ム,メ,モ,ヤ,ユ,ヨ,ラ,リ,ル,レ,ロ,ワ,ヲ,ン" _
                & ",ァ,ィ,ゥ,ェ,ォ,ャ,ュ,ョ,ッ,ー,。,「,」,、,・"
            
    全英数 = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" _
            & ",a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z" _
            & ",1,2,3,4,5,6,7,8,9,0,-,!,?,."
    
    半英数 = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z" _
            & ",a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z" _
            & ",1,2,3,4,5,6,7,8,9,0,-,!,?,.,"           '半角カンマ「,」は後述
            
    原字集 = 半カナ & "," & 全英数
    換字集 = 全カナ & "," & 半英数

    原字配列 = Split(原字集, ",")           'Splitで分けて格納
    換字配列 = Split(換字集, ",")           '半角カンマ「,」は格納出来ないので最後に対処
    
    For rrr = 0 To UBound(原字配列)    '要素数= UBound:原字=換字
        対象字 = Replace(対象字, 原字配列(rrr), 換字配列(rrr))
    Next rrr
    
    対象字 = Replace(対象字, ",", ",") '半角カンマ「,」の対処

    Range("A1") = 対象字
End Sub

--------------------------------
こうなると何でもアリですね。  でもこれは、StrConv(対象字 , vbNarrow) してから、半角カタカナ→全角で良いんじゃないかな?  (^^;
まあ、独自の変換も自由自在にする手段のベースとして、覚え書き。

 

 

 

■ 動機
エクセルのActiveX
コントロールの位置を固定したい。
行や列を変化させてもサイズを変えたくない、位置を動かしたくない。



 

■ 方法 1
プロパティの
Placementを設定する。 初期値は2。 固定するなら3。
1 = 行高や列幅と共に移動する。サイズも変わる。
2 = 行高や列幅と共に移動する。サイズは影響を受けない。
3 = 固定。(移動しない。サイズも変わらない)



■ 方法 2
コントロールの書式設定で、「セルに合わせて移動やサイズ変更をしない」を選ぶ。これも複数のコントロールに対して同時に設定できる。その後に確認するとプロパティのPlacementはきちんと3になっている。


■ 感想
ボタンやテキストボックスなどが、行の高さや列の幅の影響を受けないようにしたいと思ってネットで調べたが、ピンポイントの情報が得難かった。仕方ないのでちょっと試したところ上記と判明。覚え書きとしてブログにアップした。

 

 

 

15年使ったロールカーテンのボールチェーンが切れたので自分で交換してみた。

理解していれば数分ほどで交換できる。

■ここでの名称
・ カーテン = ロールカーテン ロールスクリーン シェード ブラインド
・ チェーン = 樹脂製ボールチェーン ループチェーン 操作チェーン
・ コネクター = チェーンの接続部品 ジョイント
・ ギア = チェーンを引っ掛ける歯車 滑車 回転部分 プーリー


■準備 (楽天:Sewing material 福屋で購入。価格は送料別)
・ 樹脂製ボールチェーン。 5.8mm・176円/m。 長めに購入。(4.8mmサイズは5円玉の穴を通る。 5.8mmは通らない)
・ コネクター。 385円/個。 劣化していなければ再利用も可能。(コネクターはギアを通過できないので、切れたチェーンは交換するしかない。後述の溶接法は素人には難しい)


■手順 (慣れていれば一人で数分程度の作業)
・ 上部のマジックテープ部分を少しだけ外す。
  (下図ではレールが2つ。 レール本体を外さなくても作業できる)

 
・ カーテンを一番下まで下ろして、切れたチェーンを外す。


・ ギアを回さずに、手でカーテンを20~30cmくらい持ち上げ、台に置く。
(これにより次の作業がし易くなる。 後述のやり直す場合は、この高さを適切に変える)


・ カーテンを下ろす方向にギアを1~2(?)回転させ、保持する。ギアから手を離すと戻ってしまう場合は保持する必要がある。(これにより、以降の操作でギアが回ってもチェーンがギアから抜けない)

 

・ チェーンを奥側から入れ、ギアを回して手前に少し引き出す。 (上図とは逆。 ギアの手前を下げる方向 = カーテンを上げる方向にギアを回して、チェーンを通す。 引き出す長さは数cmくらい。 後の操作で問題を生じたらやり直す。)


 

・ カーテンを台から下ろす。 カーテンが最下段まで下りて、、ギアから出ているチェーン部分が長くなる。 余裕をもって購入してあれば、長すぎても次の手順で余分をカットするので差し支えない。 その余裕がなくなるほど長すぎたらやり直す。

 

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

理屈: (読み飛ばしてOK。 関心のある方のみどうぞ)
 ギアが回るとカーテンの紐を軸が巻き取って上がる構造になっている。従って
最下端を過ぎればギアをどちらに回してもカーテンは引き上げられる。つまりギアをカーテン下げ方向に回し続けた場合、最下端を過ぎると逆側から再び引き上げる形になる。表現を変えると、同じ「カーテンを最下端まで下ろす」という動作でも、状態によってはギアの回転が逆になる。
 交換作業において、何も手を打たずにチェーンを通すと、ギアが順側から引き上げる方向に回転するので、通した分だけカーテンを引き上げてしまう。そのためカーテンを最下端まで下ろすと、同時にギアはカーテン下げ方向に回って、チェーンは抜けてしまう。
 そこで予め、
ギアをカーテン下げ方向に、最下端を過ぎても余分に回した状態(逆側から引き上げた状態)でチェーンを通すと、その後カーテンを最下端まで下ろす際にギアは順側から引き上げる方向に回転するので、通したチェーンは抜けるどころか逆にさらに引き出される。
----------------------------

・ レール下端から数cmほどの位置で、引き出したチェーンの余分な長さを切る。(短すぎるのは不可。下の画像ではちょっと短い。この時点でチェーンを引っ張ってもダメなのでカット時は注意する。後述の動作をチェックする写真のコネクター位置くらいが良いが、若干長めでも問題ない。短すぎるよりは長すぎた方がマシ)


 

・ チェーンのもう一方の端も、適切な長さで切る。(短すぎるとやり直しは困難。 1回長めに切ってから、確認の上でもう一回切るくらいが安心。 元と同じ長さがよいが、現状は劣化のため新品時よりも若干伸びている可能性がある


・ チェーンの両端をコネクターで接続する。 (これで完了)
接続するときはチェーンを十分に引き出して、作業しやすい場所で行うと楽。

 


・ 動作をチェックする。 
  一番上までカーテンが上がるか。
  一番下まで下げた時にコネクターがギアにぶつからないか。


■留意事項
・ カーテンを一番下まで下ろす際にコネクターがギアに当たって止まる状態だと、長期使用での破損が心配。そのためレール下端から出たチェーンを切る位置はやや長めが望ましい。その余分の長さは逆側からカーテンを上げるだけなので実用上は問題ないが、極端だとカーテンを上げるときに逆方向でコネクターがギアに当たる。



■切れる予兆
樹脂製ボールチェーンのロープ部分はナイロン製。長く使っていると徐々に伸びるループの下端が床に近接している場合は、伸びると床に着く。その後も相当期間は使用できるが、いずれは切れる可能性がある。

■応急処置 (応急修理でとりあえず直す方法)
ライターで炙(あぶ)って再接着する方法を試してみた。 (溶接法と勝手に命名)

 
・ ライター係と、くっつける係の、2人いないと難しい。
・ 溶けた部分のはみだしが大きいとギアを通過しない。

 
・ 試したところ数回で再切断してしまった。 素人には難しそう。

 

 右記の動画では上手に溶接できている。  溶接法の参考となる動画のURL

 しかし経年劣化により他部位で切れる可能性もあるのであっさり交換が無難。

 

■まとめ
・ 手順を把握していれば交換は一人で簡単にできる。
・ チェーンの購入は少し長めが安心。

 

こちらもどうぞ。

 

 

 

 

 

 


VBAのApplication.OnTimeは解除が意外と面倒です。
-----------------------------------
Sub 予約コード()
    Application.OnTime Now + TimeValue("00:00:05"), "目的コード"
End Sub

Sub 目的コード()
    MsgBox "実行しました。"
End Sub
-----------------------------------

上記において
8:00:00と8:00:02に予約コードを行うと(連続2回予約)
8:00:05と8:00:07に目的コードが実行されます。(2回実行)

複数のApplication.OnTimeを連続して行うと、

前の予約が上書きされるのではなく、予約した回数分が実行されます。

しかし、上記のように連続2回予約した場合にやりたいことは ↓
8:00:05の目的コードはキャンセルして、
8:00:07の1回だけ実行したい。(複数回予約しても最後の1回だけを実行)

そこで8:00:05の目的コードをキャンセルするつもりで下記を実行しても ↓

  Application.OnTime Now + TimeValue("00:00:05"), "目的コード", , False
目的コードはキャンセルされません。
 Now が刻々と変化するため、
Now + TimeValue("00:00:05")が8:00:05ではなくなってしまうからです。

8:00:00と8:00:02に連続して2回予約コードを行ったら
8:00:05は無しとして、8:00:07に1回だけ目的コードを実行したい。

例え連続10回予約コードを実行しても、最後の1回だけを有効にしたい。

さて、どのようにしたらよいか・・・

試行錯誤して簡便な方法を思いつきました。 ↓
-----------------------------------
Dim 時刻 As Variant 'モジュール変数:モジュールの先頭に置く。

Sub 予約コード()
    If
時刻 <> 0 Then Application.OnTime 時刻, "目的コード", , False
   
時刻 = Now + TimeValue("00:00:05")
    Application.OnTime
時刻, "目的コード"
End Sub

Sub 目的コード()
   
時刻 = 0
    MsgBox "実行しました。"
End Sub

-----------------------------------
・ 実行の予約時刻をモジュール変数とする。(パブリック変数でもOK)
・ 時刻が0でないなら(目的コードが予約済&実行前)、キャンセルする(予約なしとなる)
・ 時刻が0なら
(予約なし、または目的コード実行済)、目的コードを予約。
・ 目的コードでは最初に時刻を0にリセットする。

 

 

解説が不要なくらい簡単です。  色々と応用できそう。 (^^)

 

こちらもどうぞ。

 

 

 

 

 

 

 


 

メルカリから下記タイトルのメールが届きました↓

【重要】メルカリ・メルペイを装った不審なメールと、そのお問い合わせ・今後のご案内について(12/17アップデート)
     

 

 そういう詐欺メールが多いので「またか~」と思っていたが、内容を読むうちに「詐欺ではなく本物」と確信しました。その根拠は ↓
             ・ リンクがない
             ・ 連絡はアプリから行うよう指示

     
              基本的に詐欺にあう要素がありません。

  「添付やリンクがあったら詐欺」 とは断言できませんが、

  これらがなければだいたい大丈夫かな?とも思います。
 

洗面台の横にある棚にティッシュペーパーを置いて使っています。

普通に置くと紙を出すときに本体がついてくることや、

次の紙が出てこないことがあります。

そこで余っていた
突っ張り棒で置き場を作ってみました。

   

下に引き出すので上記の問題が全て解決した上に、棚面も広く使えるようになりました。

 

ストックも置けるし、予備も開封してセットしておけます。

ディスペンサーみたいな感じになりました。

   

下に引くと突っ張り棒が落ちることがあるので、ウレタンクッション周囲の余りを貼っています。

想像以上に便利です。  
ニコニコ

 

縦置きのペーパータオルケースについてはこちら
https://ameblo.jp/sumikko-ameba/entry-12585734211.html