dLibの使い方-基本編

学習状況 

解説

dLibの使い方-基本編です。

この教材についての過去の質問・感想

11177 : 田中 宏明さんのコメント (2019-02-16 13:00:44)

小川慶一先生:

的確なアドバイスありがとうございます。

Excelマクロによるスキルを実務に活用することができると業務の劇的な効率化を実現できます。しかし、そのスキルを持った人が異動や退職になった後、引継ぎやメンテナンスの問題にいずれ直面することになるので、今考えていることを書いてみます。

一つの解決策は、マクロが使える同僚を増やすことですが、元々プログラマーとして雇用されていない職場では、マクロは個人が勝手にやっている位置づけになるので、強制力が働きません。

そこで別の解決方法として、効率化やり方として、よくわからないけどデータをセットしてボタン押したら仕事が終わらせることができる案件が見つかっても、あえて業務の処理過程に、わざと人間が介在させるようなつくりにして、ブラックボックス化を回避します。そして各ステップで処理するマクロは、シンプルかつ汎用的なものに仕上げるというやり方を意識して行っています。

そして“dLib for Excel VBA”を活用することによって、シンプルかつ汎用的にメンテナンスフリーが実現できれば、自分の業務をマクロで効率化しつつ、業務を引き継ぐことも可能になると信じています。

> 田中 宏明さん:
>
> 職場の他の人員とのスキル差からの問題はどうしても生じますね。
>
> とはいえ、引き継ぎ時にふさわしい人員を用意するのは職場の責任で、田中さんの責任ではありません。
> 責任の所在をご自身の中で明らかにし、その範囲のことを粛々とされるのが良いかと思います。


11173 : 小川慶一の回答 (2019-02-16 12:00:14)

田中 宏明さん:

職場の他の人員とのスキル差からの問題はどうしても生じますね。

とはいえ、引き継ぎ時にふさわしい人員を用意するのは職場の責任で、田中さんの責任ではありません。
責任の所在をご自身の中で明らかにし、その範囲のことを粛々とされるのが良いかと思います。


> 小川慶一先生:
>
> マクロがよくわからない人は、人の作ったマクロで業務効率化を体感できるけど、作者が異動になるとメンテナンスできないので、すぐゴミになる。だから、関数を使って処理することを考えます。
>
> 私も経験上、その考え方に共感できますので、“dLib for Excel VBA”を使いこなせるレベルになり、エクセルが使える環境にある限り、メンテナンスフリーで使える自分のためのツールを作り、効率化はこっそりとやるほうがよいとの思いが強くなりました。
>
> > 田中 宏明さん:
> >
> > 自分のスキルを高めることは大切です。


11167 : 田中 宏明さんのコメント (2019-02-15 21:32:28)

小川慶一先生:

マクロがよくわからない人は、人の作ったマクロで業務効率化を体感できるけど、作者が異動になるとメンテナンスできないので、すぐゴミになる。だから、関数を使って処理することを考えます。

私も経験上、その考え方に共感できますので、“dLib for Excel VBA”を使いこなせるレベルになり、エクセルが使える環境にある限り、メンテナンスフリーで使える自分のためのツールを作り、効率化はこっそりとやるほうがよいとの思いが強くなりました。

> 田中 宏明さん:
>
> 自分のスキルを高めることは大切です。


11164 : 小川慶一の回答 (2019-02-15 19:12:34)

田中 宏明さん:

自分のスキルを高めることは大切です。

人がどこまでついてくるか?は、その人の問題ですし。


> 小川慶一先生:
>
> このライブラリ “dLib for Excel VBA”を少し動かしてみて、VBAの奥深さを知ることができました。
> 職場にVBAを使える仲間をつくれば、ツールづくりをシェアでき、メンテナンスも含めて効率化できると思っていましたが、他人に期待するよりも、自分がこのライブラリを使いこなせるレベルに達することのほうが早道のような気がしてきました。


11159 : 田中 宏明さんのコメント (2019-02-14 09:06:43)

小川慶一先生:

このライブラリ “dLib for Excel VBA”を少し動かしてみて、VBAの奥深さを知ることができました。
職場にVBAを使える仲間をつくれば、ツールづくりをシェアでき、メンテナンスも含めて効率化できると思っていましたが、他人に期待するよりも、自分がこのライブラリを使いこなせるレベルに達することのほうが早道のような気がしてきました。


11155 : 小川慶一の回答 (2019-02-14 06:38:39)

田中 宏明さん:

個々に列構成のことなるファイルを順に開いて...という処理だと、dLib以下の要領ですかね。
(所定の列が存在しない場合の処理は除外)

Sub Dlib_FileOpenLoop()
    Dim dTo As New dLib
    Dim dLs As New dLib '転記元ファイル、シートリスト。A列ID, B列ファイル名、C列シート名
    Dim dFm As New dLib
    
    dTo.SetList ThisWorkbook.Worksheets("転記先").Range("C3")
    dLs.SetList ThisWorkbook.Worksheets("転記元リスト").Range("A3")
    
    Dim i As Long
    Dim sBk As String
    Dim sWs As String
    For i = dLs.TitleRow + 1 To dLs.GetLastCell.Row
        sBk = dLs.rg("ファイル名", i).Value
        sWs = dLs.rg("シート名", i).Value
        dFm.bkActive sBk
        dFm.SetList Workbooks(sBk).Worksheets(sWs).Range("A2") 'A2が表の左端という前提
        
        '処理
        
        dFm.bk.Close SaveChanges:=False
    Next
End Sub


11154 : 田中 宏明さんのコメント (2019-02-14 06:15:55)

小川慶一先生:

> > 例えば、データ列を移動させても、そのまま動くので、VBAとは別の魔法の言語のように感じました。
>
> そこは重要ポイントですね。
> よくある面倒を解消すべく作ったライブラリです。

私の場合、実務で複数のファイルを一つずつ開いて転記するマクロを多用していますが、時間の経過とともに、転記元ファイルのデータ列変更があり、都度のマクロ修正が必ず生じます。
その時点では、忘れていることを思い出す時間も必要で、かなり面倒です。

そこで、以下のように該当項目を列方向に検索して列番号を付与するコードを書いて列変更の修正を回避できたので、大満足していました。

Dim retsu0 As Integer, retsu1 As Integer, retsu2 As Integer, retsu3 As Integer, retsu4 As Integer
Dim xx As Integer
'転記元ファイルの列構成に関わらずデータ列を認識させる
For xx = 2 To fmSh.Cells(1, Columns.Count).End(xlToLeft).Column
    Select Case LCase$(fmSh.Cells(1, xx).Value)
        Case "item title":            If retsu0 = 0 Then retsu0 = xx
        Case "tracking number":       If retsu1 = 0 Then retsu1 = xx
        Case "shipped on date":       If retsu2 = 0 Then retsu2 = xx
        Case "sale price":            If retsu3 = 0 Then retsu3 = xx
        Case "shipping and handling": If retsu4 = 0 Then retsu4 = xx
    End Select
Next xx

If retsu0 = 0 Or retsu1 = 0 Or retsu2 = 0 Or retsu3 = 0 Or retsu4 = 0 Then
    MsgBox "転記元ファイルが不完全です。列の各項目が揃っているか確認してください。"
    Exit Sub
End If


あらためて、レベル違いを思い知ることになりましたが、これをきっかけに、更に上のレベルを目指します。


11147 : 小川慶一の回答 (2019-02-13 21:16:03)

田中 宏明さん:

> 例えば、データ列を移動させても、そのまま動くので、VBAとは別の魔法の言語のように感じました。

そこは重要ポイントですね。
よくある面倒を解消すべく作ったライブラリです。

> 実際のところは、クラスモジュールで設計された動きをしているはずなので、ステップ実行F8で観察して確かめてみたいと思います。

dictionaryオブジェクトにセルの識別子を格納するところは、直接オブジェクトへの参照にできそうです。
あと、格納作業前に、列名の重複チェックをする等、まだロジックの改善余地はありそうです。
次リリースではそういうところも含めて直したいと思っています。


11138 : 受講生さんのコメント (2019-02-12 08:58:36)

小川先生

dLib動画の感想です。

衝撃でした('Д')
何でこのようなことができるのだろうと、凄すぎて笑ってしまいました。
そして、動画に見入ってしまい、ご飯を作りそびれました。
コードも拝見しましたが、コメントや変数の付け方などとても参考になりました。

こちらをいただいても良いのですか?
仕事で使っても良いのですか??

これからもマクロたくさん練習しようと思いました☆


11131 : 田中 宏明さんのコメント (2019-02-11 19:28:14)

「dLibの使い方-基本編」の感想です。
例えば、データ列を移動させても、そのまま動くので、VBAとは別の魔法の言語のように感じました。
実際のところは、クラスモジュールで設計された動きをしているはずなので、ステップ実行F8で観察して確かめてみたいと思います。
どうもありがとうございます。


3日がかりのその仕事、3分で終わらせる方法教えます。ガラパゴスタディーオンライン講座 ユーザー登録

本講座の動画一覧

  1. 【動画1】 dLibの使い方-基本編
    【動画1】 dLibの使い方-基本編 未習得
  2. 【動画2】 dLibの使い方-簡単なアプリケーションを作ってみる
    【動画2】 dLibの使い方-簡単なアプリケーションを作ってみる 未習得
  3. 【動画3】 dLibの使い方-複数ファイル・複数シートにまたがる処理
    【動画3】 dLibの使い方-複数ファイル・複数シートにまたがる処理 未習得
  4. 【動画4】 dLibの使い方-種々のAPI
    【動画4】 dLibの使い方-種々のAPI 未習得

塾長 小川慶一

メニュー

コメント紹介

もっと見る

ページの先頭へ