エホバの証人二世の、個人研究&趣味blogです。
2018/04«│ 2018/05| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 »2018/06
文字色の変化のON/OFFが出来ます。文字サイズ文字サイズ:大文字サイズ:中文字サイズ:小
21:41:10
最近、マクロの高速化を数多く行っています。
0.00秒以下でも「遅い」と言ってくるクライアントさんもいますが、そんなクライアントさんばかりではありません。実際本当に「遅い」マクロを「ごく普通に」使用している方もたくさんいらっし

ゃいます。
そういう方を見ると、本当にもったいないなぁ……と思います。
だからマクロなんていらないんだよとか言う人まで……。でも、ブックを開く⇒一か所を修正する⇒保存する 程度の簡単な作業だったらマクロを使った方が早いし楽なんですけどね~。
人間の目で「探す」作業が入っていないので。
人間が入力して、指定した位置に「機械が」登録してくれます。

人間がする仕事なんて少なくていいのです。人力で作業するには限界があるしね。
それに仕事の仕方なんて人それぞれ微妙に違ってくるわけですし……。ある人は「そんなやり方ではだめだ」と言ってもある人にとっては「それは良い」なんてことはざらにあります。

無題
border="0" width="300" height="212" />


クライアントさんから送られてきたものを高速化しました。
まず、最初の3秒の時点では「配列」が一切使用されていなかったので、全てを配列にしました。
また、データの入れ替えマクロで指定した行を消していくマクロが入っていたので、配列内で削除し、最後に入れ替えデータを全て挿入することにしました。
(元々は選択行のみ入れ替えでしたが、全て入れ替えた方が早くなりました)
コンピュータは理路整然としたことの方が早くできたりします。
同じ書類でも50音順や数字の昇順・降順などの方が早くなります。


Private Sub After_Insatsu()
Dim x As Long
Dim flg As Integer
Dim y As Long
nnn = 0
For Each sh In ActiveWindow.SelectedSheets
x = 1
flg = 0

For Each ws In Worksheets
If nnn = 0 Then

If InStr(ws.Name, "提出書類(") <> 0 Then
namae = Replace(ws.Name, "提出書類(", "")
namae = Replace(namae, ")", "")
namae2 = Replace(namae, " ", "")
If InStr(sh.Name, namae) <> 0 Or InStr(sh.Name, namae2) <> 0 Then
insatsu = sh.Name
If InStr(insatsu, "(") <> 0 Then
insatsu = Left(insatsu, InStrRev(insatsu, "(") - 1)
End If
x = 1
Do Until ws.Cells(x, 1) = insatsu
x = x + 1
Loop
ws.Cells(x, 1).Font.Strikethrough = True
nnn = ws.Index
Exit For
ElseIf InStr(ws.Name, "提出書類(") <> 0 Then
insatsu = sh.Name
If InStr(insatsu, "(") <> 0 Then
insatsu = Left(insatsu, InStrRev(insatsu, "(") - 1)
End If
If InStr(insatsu, "(") <> 0 Then
insatsu = Left(insatsu, InStrRev(insatsu, "(") - 1)
End If
x = 1
Do Until ws.Cells(x, 1) = insatsu
x = x + 1
Loop
ws.Cells(x, 1).Font.Strikethrough = True
End If
End If
Else
If ws.Index > nnn Then
namae = Replace(ws.Name, "提出書類(", "")
namae = Replace(namae, ")", "")
namae2 = Replace(namae, " ", "")
If InStr(sh.Name, namae) <> 0 Or InStr(sh.Name, namae2) <> 0 Then
insatsu = sh.Name
If InStr(insatsu, "(") <> 0 Then
insatsu = Left(insatsu, InStrRev(insatsu, "(") - 1)
End If
x = 1
Do Until ws.Cells(x, 1) = insatsu
x = x + 1
Loop
ws.Cells(x, 1).Font.Strikethrough = True
nnn = ws.Index
Exit For
ElseIf InStr(ws.Name, "提出書類(") <> 0 Then
insatsu = sh.Name
If InStr(insatsu, "(") <> 0 Then
insatsu = Left(insatsu, InStrRev(insatsu, "(") - 1)
End If
If InStr(insatsu, "(") <> 0 Then
insatsu = Left(insatsu, InStrRev(insatsu, "(") - 1)
End If
x = 1
Do Until ws.Cells(x, 1) = insatsu
x = x + 1
Loop
ws.Cells(x, 1).Font.Strikethrough = True
End If
End If
End If
Next

Next sh
End Sub




これは印刷した書類を一人ずつチェックするマクロです。
印刷後⇒提出書類を探す⇒チェックするです。
Thisworkbookに追加して使用します。ま、このぐらい楽しても誰も文句言わないよね♪ 「当たり前」の事ですし。
今回はまだ作成していないのですが、会社別も作成し、最後に提出書類一覧が出来るようなマクロまで作成する予定です。

コメント
コメントの投稿










トラックバック
トラックバックURL
→http://ayukt0526.blog.fc2.com/tb.php/330-592b7187
この記事にトラックバックする(FC2ブログユーザー)
プロフィール

はなかな

Author:はなかな
FC2ブログへようこそ!

最新記事
最新コメント
月別アーカイブ
カテゴリ
フリーエリア
ランキング参加しています。 にほんブログ村 哲学・思想ブログ エホバの証人へ にほんブログ村 にほんブログ村 本ブログ 読書日記へ にほんブログ村 にほんブログ村 音楽ブログへ にほんブログ村
音楽(J-POP) ブログランキングへ
小説(読書感想) ブログランキングへ
キリスト教 ブログランキングへ
ブログランキング ブログ王ランキングに参加中!
検索フォーム
RSSリンクの表示
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
FC2アフィリエイト