オンライン講座 質問と回答

無料・有料のオンライン講座で寄せられたメッセージの一部を紹介致します。

[10342]発展1講座第2章 – コレクション

2018-08-08 13:12:05 受講生さんからの投稿です。

コレクションの概要

同じタイプのオブジェクトの集合体のこと。
例(切手、ミカンの一山、同じ牧場にいる羊の群れ)

コレクションはアイデア次第。
どの集合体で考えるかで作業がしやすくなる。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10340]発展1講座第1章 – バリアント型

2018-08-08 12:58:08 受講生さんからの投稿です。

バリアント型
「どんな使い方としてもOKですよ」と言うこと。
しかし、これからは
できるだけ、目的(数値、日付、文字列)を意識して変数を宣言する方が良い。

これまでは、
Dim ○○ のみで データ型を宣言していなかった。
これは、バリアント型として認識されていた。
文字も数字も入れることができていたのはこのバリアント型であったため。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10339]発展1講座第1章 – 固有オブジェクト型

2018-08-08 12:52:01 受講生さんからの投稿です。

固有オブジェクト型にするメリット
・ピリオドを入力すると候補がでてくる。
 (自動メンバ表示機能が使える。)
→書き間違いが減る

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10337]おまけ1-3 Functionプロシージャの活用

2018-08-08 10:46:47 Y.O.さんからの投稿です。

コメント欄を参考に、SetDicの部分はFunctionを使わなくても、「Subプロシージャでdicを参照渡し」すれば動くことを、実際にコードを書いて確認できました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10335]発展1講座第1章 – 総称オブジェクト型

2018-08-07 08:04:09 受講生さんからの投稿です。

総称オブジェクト型
 型を割り当てることで、マクロがすっきりする。しかもニックネームのつけ方で作業の中身が分かって大変便利。

[ 続きを読む ]  返信件数:3件  [ 動画を見る] 

[10334]動的配列3-演習

2018-08-07 05:09:05 みねさんからの投稿です。

とても良く理解出来ました。
ありがとうございます。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10333]セル内の文字列から区切り文字を見つけ、その出現回数+1回だけデータ転記する

2018-08-07 00:11:59 morimotoさんからの投稿です。

instrで「、」の位置を見つけ次のstart値を変えていく、、、という苦戦したやり方でしました。。。がmidでストレートに文字を探せばシンプルに解決できるのですね。勉強になりました。問題3で「、」の位置を直接求めずいっきにする方法はびっくりしました!。問題2のコードを加工してるだけですね。使う道具はシンプル、あとは
ほんと応用するだけですね。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10332]連想配列2-Dictionaryオブジェクトの使用例

2018-08-07 00:03:07 mokoさんからの投稿です。

小川先生
ヒントのコード、ありがとうございます。

変数にも配列を入れられるとは思っていなかったので、とても驚きました。
配列は静的配列か動的配列かで宣言するものだと思いこんでました。
今回のようにdic.Keysやdic.Itemsで作った配列をそのままいれるのであれば、配列よりも変数で宣言したほうがシンプルでわかりやすいと思いました。
・・・が、疑問1と疑問2の動的配列で宣言してもエラーがでないまま動いたことについては未だに理解できていません。((+_+))

疑問3は理解しました。
dic.Keysもdic.ItemsもTypeNameで型を調べてみたらどちらもVariantでした。だから他の型で宣言するとエラーがでたんですね。
型が違うというエラーがでたらTypeNameで調べて修正していきます。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10330]動的配列3-演習

2018-08-06 14:58:22 みねさんからの投稿です。

早速の返信ありがとうございます。
最小値の説明はわかりました。
最大値が↓の2つで何故違うのかがわかりません。

UBound(vList, 1) → 1

UBound(vList, 2) → 31

35ページの
点線の2列とも最大値は31番目だと思うのですが

UBound(vList, 1) → 1

になってしまう理由がわかりません。
よろしくおねがいします。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10327]発展1講座第1章 – 変数宣言の強制2

2018-08-06 13:16:09 受講生さんからの投稿です。

・Option Explicit は 変数の宣言を強制すること。

・Option Explicitを入れるのが基本。安心だから。

・Option Explicitを設定しておくとマクロ側が
間違いを見つけてくれる。

・実際に間違いを探してみると、1つしか見つけられなかった。
kingaku と goukei を見つけることができたが、
hyouji と hyoji は見落とした。
Option Explicitの必要性を感じる良いworkだった。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10326]発展1講座第1章 – ハンガリアン記法

2018-08-06 12:52:32 受講生さんからの投稿です。

ハンガリアン記法
変数名の前に、型のアルファベットの頭文字を
書いておくと、変数名をみて【型】を知ることができる。

間違えやすいので、変数名の頭文字に
データ型のアルファベットを付けた方が良い。
As Long は 間違いやすいため C にする。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10324]動的配列3-演習

2018-08-06 05:41:47 みねさんからの投稿です。

テキスト35ページの

LBound関数やUnbound関数の第二引数は、「配列の、左から数えて何次元目のところの最小値、最大値を求めるか」を指定するための引数です。
なので、この例の場合だと、計算結果の例は、以下のようになります。
LBound(vList, 1) → 0
UBound(vList, 1) → 1
LBound(vList, 2) → 0
UBound(vList, 2) → 31

というのが理解不能です。
二次元だと

1列目2列目ともにの最小の値が1 最大が31
だと思うのですが

なぜ
LBound(vList, 1) → 0
UBound(vList, 1) → 1
LBound(vList, 2) → 0
UBound(vList, 2) → 31

こうなってしまうのかわかりません。
具体的に35ページの青い点線でいう
どこからどこまでの範囲を 1とした場合と2とした場合で
指すのかおしえていただけるとありがたいです。
よろしくお願いします。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10316]発展1講座第1章 – 変数の初期値

2018-08-05 10:14:21 受講生さんからの投稿です。

変数を設定した段階で、初期値が設定されている。
変数名   初期値
As String   ""
As Date #1899/12/30#
As Long 0
As Double 0
As Boolean False

基本を覚えておこう。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10315]発展1講座第1章 – データの「型」2

2018-08-05 10:07:33 受講生さんからの投稿です。

As String 文字列を扱う
As Date 日付を扱う
As Double 数値(小数)を扱う
As Long 整数を扱う
As Boolean 二者択一を扱う

マクロを見て、As ○○とあれば、そのデータが何を示しているのか分かる。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10314]発展1講座第1章 – データの「型」1

2018-08-05 09:54:18 受講生さんからの投稿です。

今日から、発展編の学習を進めてきます。
よろしくお願いします。

初日のアウトプット
データの型を指定することで、入力ミスを防ぐことができる!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10311]発展1講座イントロダクション – 使用するファイル、PDFの確認

2018-08-04 22:43:44 のんのんさんからの投稿です。

こんにちは。
seminar_data_hattenフォルダの下に、以下の6つのフォルダがあります。
1) Enshu
2) HattenData
3) Mihon
4) Normal
5) Template
6) Tuika

HattenDataの下には、こちらの動画セミナーで使用するファイルがあることは分かるのですが、他のフォルダのファイルはどのように利用したらよいですか?
よろしくお願いいたします☆

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10310] 「クラス」と「インスタンス」の生成を体験

2018-08-04 18:51:05 田中 宏明さんからの投稿です。

クラス(設計図)を使って、インスタンス(オブジェクトの実体)を生成することを体験することで、Excelから外の世界への広がる「外部連携」の入り口がしっかり見えた気がします。
最近になって、クラスモジュールを使うことのメリットやデメリットが理解できるようになりましたが、ここまでの道のりに約2年半近くかかりました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10307]連想配列2-Dictionaryオブジェクトの使用例

2018-08-02 18:07:23 mokoさんからの投稿です。

小川先生
いつもお世話になっています。

KeysメソッドとItemメソッドも配列を返すのに、変数で宣言するのがしっくりきていません。
配列を返すのなら配列を宣言するのでは?と思い、試しにやってみたらうまく動いたのですが、動いたら動いたでredimしてないのに?とか
配列の型は?とかいろいろ疑問が出てきました。

連想配列は通常の配列とは違うから・・・という風に思っておけばいいのでしょうか?

Sub test()
    Dim dic As Scripting.Dictionary
    Set dic = CreateObject("Scripting.Dictionary")
    
    Dim c As Long
    Dim cMx As Long
    Dim st As String
    cMx = Range("A" & Rows.Count).End(xlUp).Row
    
    For c = 1 To cMx
        st = Range("A" & c).Value
        If dic.Exists(st) Then
            dic.Item(st) = dic.Item(st) + 1
        Else
            dic.Add (st), 1
        End If
    Next
    
    '★疑問1 vKeysとvItmsを動的配列で宣言しても同じ結果になった
    '★疑問2 配列のサイズがわからなかったのでredimしていないがエラーが出なかった
    '★疑問3 vKeysの型をstring,vItmsの型をlongにしたら『型が一致しません』エラーになる
    Dim vKeys() As Variant
    Dim vItms() As Variant
    
    vKeys() = dic.Keys
    vItms() = dic.Items
    
    For c = LBound(vKeys) To UBound(vKeys)
        Range("C1").Offset(c).Value = vKeys(c)
        Range("D1").Offset(c).Value = vItms(c)
    Next
End Sub

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10299]エクセルマクロ・VBA発展編1フォローアップミニセミナーNo.10

2018-08-02 05:12:18 受講生さんからの投稿です。

小川さん
お世話になります。
朝の体操の問題で、コード中に「.Value」を入れなくても結果は同じでした。試しに左辺だけ入れてみても動きました。先日のworksheets とsheets ではありませんが、入れる入れないで、本質的な違いがどこかで生じているのでしょうか。
もしかすると、この件に関しても今までの講義で出てきているかもしれませんが、よろしくお願いします。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10296]条件に一致するデータを別表に転記する。AutoFilterより便利な条件抽出マクロ。

2018-07-31 20:38:31 受講生さんからの投稿です。

知っていることを応用しながら、問題を解くのがパズルみたいで楽しいです。

下記のマクロは、私が書いたマクロなのですが、解説動画を見て、
GOKEI=GOKEI+1の位置をRange〜の後に持ってくれば、
GOKEI=4にしなくて良かったんだと気づきました。

また、先生のマクロでは、if文のお団子部分のRangeを各列ごとに分けてマクロを書かれているのに対し
私はA8:C8という風に複数範囲をしてしたマクロを書きました。
今回は問題なく実行できたのですが、このような書き方が問題になることはありますか。
先生のように各列ごとに分けてマクロを書く方が良い理由など教えて頂きたいです。

※マックを使っていて、マクロをタイプする時、全て大文字入力になります。
基本、次の行に移った時に自動的に小文字大文字の調節がされるのですが、自分でつける変数名などは大文字のままです。
特に問題はないのですが、若干の見にくさを感じています。
もしこの設定の仕方をご存知でしたら、併せてお答え頂けると嬉しいです。
ーーーーーーー
Sub ZANGYO()

Dim GOKEI
GOKEI = 4

Dim GYO
For GYO = 8 To 17

If Range(“C” & GYO).Value > 100 Then
GOKEI = GOKEI + 1
Range(“F” & GOKEI & “:” & “H” & GOKEI).Value = Range(“A” & GYO & “:” & “C” & GYO).Value
End If

Next

End Sub
ーーーーーーー

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10295]基礎講座第1章4 – コメントの活用

2018-07-31 20:04:11 受講生さんからの投稿です。

お返事が遅くなってしまい申し訳ないです。
もう一度エクセルを開き直し、実行を行ったところ、問題なく実行できました。先生がおっしゃられる通り、操作ミスでプログラムを壊してしまっていたのかもしれません。これから同じエラーがでた時、自分ですぐに対応が出来るので、原因をお聞きできて、良かったです。ありがとうございました。

>>極めて多いのは、タッチパネル等の操作ミスでプログラムのどこかを壊してしまった、というケースです。
原因を見つけられないようでしたら、サンプルデータを再度DLし、そのDLしたサンプルデータで再度試していただけますでしょうか。

それでうまくいったか?結果もお知らせください!

> 動画と同じようにdaihon0031の実行を行おうとしたところ、実行時エラー’5’エラーの表示が出て実行できませんでした。「プロシージャーの呼び出し、または引数が無効です。」ということなのですが、何が原因なのでしょうか。よろしくお願いします。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10293]補講1-ディクショナリーオブジェクトのさらなる活用

2018-07-28 06:50:20 田中 宏明さんからの投稿です。

連想配列で共通キーに対する複数データの合計値を算出するために連想配列の配列を定義してみました。
もっと良いやり方があるとは思いますが、うまく動いたのでご報告します。

Public Sub Dic_Closs_Shukei()

    Dim Dic(2) As Object  '連想配列の配列を定義
    Set Dic(0) = CreateObject("Scripting.Dictionary")
    Set Dic(1) = CreateObject("Scripting.Dictionary")
    Set Dic(2) = CreateObject("Scripting.Dictionary")

    Dim Product As String '連想配列の配列共通キー
    Dim Cnt As Long       '連想配列カウンター
    
    With Worksheets("抽出データ")
        For Cnt = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
            Product = Trim(Left$(.Cells(Cnt, "A").Value, 7))
            'ブランク以外で、データフォーマット条件に合致するキーのデータを各配列に入れる
            If Product <> "" And Mid$(Product, 4, 1) = "-" Then
                If Dic(0).Exists(Product) Then
                    '2回目以降に見つかった場合
                    Dic(0).Item(Product) = Dic(0).Item(Product) + .Range("G" & Cnt).Value
                    Dic(1).Item(Product) = Dic(1).Item(Product) + .Range("C" & Cnt).Value
                    Dic(2).Item(Product) = Dic(2).Item(Product) + .Range("D" & Cnt).Value
                Else
                    '最初に見つかった場合
                    Dic(0).Add (Product), .Range("G" & Cnt).Value
                    Dic(1).Add (Product), .Range("C" & Cnt).Value
                    Dic(2).Add (Product), .Range("D" & Cnt).Value
                End If
            End If
        Next Cnt
    End With
    
    Dim Vkeys As Variant
    Vkeys = Dic(0).keys

    Dim CntforDic As Long '連想配列カウンター
    For CntforDic = LBound(Vkeys) To UBound(Vkeys)
        Range("A" & 4 + CntforDic).Value = Vkeys(CntforDic)
        Range("B" & 4 + CntforDic).Value = Dic(0).Item(Vkeys(CntforDic))
        Range("C" & 4 + CntforDic).Value = Dic(1).Item(Vkeys(CntforDic))
        Range("D" & 4 + CntforDic).Value = Dic(2).Item(Vkeys(CntforDic))
    Next CntforDic
    
    Set Dic(0) = Nothing
    Set Dic(1) = Nothing
    Set Dic(2) = Nothing

End Sub

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10292]保険料額表から標準報酬額ごとの保険料負担額を算出する

2018-07-28 01:10:37 morimotoさんからの投稿です。

以上~未満なので
If hidari <= Range(“e” & gyo2).Value And Range(“e” & gyo2).Value < migi と挟みつけましたが、よくみればmigiの値で大小さえわかればよかったことに気付きませんでした。っとなんといってもここはexit forとfor next のなかにfor nextを使うのがkeyと思いました。
実務でかならず出そうなところですよね。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10288]エクセルマクロ・VBA発展編1フォローアップミニセミナーNo.05

2018-07-26 05:07:55 受講生さんからの投稿です。

小川さん
いつも大変お世話になっております。
自動記録したら「worksheets(“sheet2”)」でなく「sheets(“sheet2”)」と
でてきました。worksheetsと、ただのsheets、挙動は同じでしたが
何か違いがあるのでしょうか。違いがないなら、短い方が楽だと思うのですが。ちなみに2016バージョンです。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10287]発展編1 フォローメールセミナー 第9回

2018-07-26 00:12:49 のんのんさんからの投稿です。

再提出します。
よろしくお願いします☆

前回の添削で、1か所理解できないところがありました。

「’↓Format関数の活用も検討してください。ogawa」
のところですが、これは rowAnumberingサブプロシージャのどこで Format関数を使えばよいのでしょうか?
よろしくお願いします。

Option Explicit

Dim Retsu As String

Sub CreateDenpyo()
    Application.ScreenUpdating = False
    NumberingA
    Retsu = "B"
    Sorting
    ExeCreateDenpyo
    Retsu = "A"
    Sorting
    Application.ScreenUpdating = True
End Sub

Sub NumberingA() 'シート"main"のA列に順番に番号を付けて行くマクロ
    Dim lngMax As Long  'シート"main"の最大行数を入れる
    Dim lngGyo As Long
    
    lngMax = Worksheets("main").Range("B" & Rows.Count).End(xlUp).Row
    Range("A1").Value = "No."
    For lngGyo = 2 To lngMax
        Range("A" & lngGyo).Value = lngGyo - 1
    Next
End Sub

Sub Sorting()
    Dim lngMax As Long  'シート"main"の最大行数を入れる
    
    lngMax = Worksheets("main").Range("B" & Rows.Count).End(xlUp).Row
    ActiveWorkbook.Worksheets("main").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("main").Sort.SortFields.Add _
        Key:=Range(Retsu & "2:" & Retsu & lngMax), _
        SortOn:=xlSortOnValues, _
        Order:=xlAscending, _
        DataOption:=xlSortNormal
    With Worksheets("main").Sort
        .SetRange Range("A1:G" & lngMax)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select
End Sub

Sub ExeCreateDenpyo()
    'シート"main"のB列のデータの値によって、
    'シート作成(シート"main1"のコピー)、シート名付与、データ転記するマクロ
    
    Dim lngMax As Long  'シート"main"の最大行数を入れる
    Dim st As String    'シート名(取引先名称)を入れる
    Dim lngFm As Long
    Dim lngTo As Long
    Dim shtFm As Worksheet
    Dim shtTo As Worksheet
    
    DeleteDenpyo
    
    Set shtFm = Worksheets("main")
    shtFm.Activate
    lngMax = shtFm.Range("B" & Rows.Count).End(xlUp).Row
    
    For lngFm = 2 To lngMax
        If st <> shtFm.Range("B" & lngFm).Value Then
            If lngFm > 2 Then
                Keisen
            End If
            st = shtFm.Range("B" & lngFm).Value
            Worksheets("main1").Copy After:=Worksheets(Worksheets.Count)    'コピー
            Set shtTo = ActiveSheet
            shtTo.Name = st 'シート名付与
            lngTo = 16
        End If
        'ここからデータ転記
        shtTo.Range("B" & lngTo).Value = Right(Year(shtFm.Range("C" & lngFm).Value), 2)
        shtTo.Range("C" & lngTo).Value = Month(shtFm.Range("C" & lngFm).Value)
        shtTo.Range("D" & lngTo).Value = Day(shtFm.Range("C" & lngFm).Value)
        shtTo.Range("E" & lngTo).Value = shtFm.Range("D" & lngFm).Value
        shtTo.Range("F" & lngTo).Value = shtFm.Range("E" & lngFm).Value
        shtTo.Range("H" & lngTo).Value = shtFm.Range("F" & lngFm).Value
        If shtFm.Range("G" & lngFm).Value > 0 Then
            shtTo.Range("I" & lngTo).Value = shtFm.Range("G" & lngFm).Value
        Else
            shtTo.Range("J" & lngTo).Value = shtFm.Range("G" & lngFm).Value
        End If
        
        If lngTo = 16 Then
            shtTo.Range("K" & lngTo).Value = shtTo.Range("I" & lngTo).Value + shtTo.Range("J" & lngTo).Value
        Else
            shtTo.Range("K" & lngTo).Value = shtTo.Range("I" & lngTo).Value + shtTo.Range("J" & lngTo).Value + shtTo.Range("K" & lngTo).Offset(-1).Value
        End If
        lngTo = lngTo + 1
    Next
    Keisen
    Worksheets("main").Select
End Sub

Sub DeleteDenpyo()
    Dim ws As Worksheet
    
    Application.DisplayAlerts = False
    For Each ws In Worksheets
        If Left(ws.Name, 4) <> "main" Then
            ws.Delete
        End If
    Next
    Application.DisplayAlerts = True
End Sub

Sub Keisen()
    Dim lngMax2 As Long
    lngMax2 = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
    
    ActiveSheet.Range("B16:K" & lngMax2 + 1).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlHairline
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlHairline
    End With
    Range("A1").Activate
End Sub

[ 続きを読む ]  返信件数:5件  [ 動画を見る] 

[10285]総合問題5-2 取引先ごとの集計を完成させる

2018-07-25 19:25:49 こんちゃんさんからの投稿です。

連想配列、非常に便利すぎます。取引先との金額・重量算出等の計算は連想配列使ってます。
しかし職場で私しか連想配列を扱えないので、いつかExcelレガシーになっちゃうかな~。
と思いつつも使ってしまいます(^-^;

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10277]住所情報を都道府県から市区町村レベルで細かく分割する

2018-07-23 13:14:31 morimotoさんからの投稿です。

途中何回やってもエラーデバックで返ってきました。ほんと悩みに悩み見ましたらどこか1行で毎度おなじみ
range(“b” & gyo),,,をrange(“b” : gyo),,,と書いてました。エラー解消にならないときケアレスミスがないかみないといけないことが、バカばかしですが気を付ける点だとわかりました。当たり前ですが見過ごしやすいです。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10276]住所情報を都道府県から市区町村レベルで細かく分割する

2018-07-23 13:10:42 morimotoさんからの投稿です。

動画解説を基に自分の今ある知識で再度トライしまして
納得いく形ができました。やれやれです。が解説の方でsikugun = Mid(moto, todofuken + 1)があり、そうですよね都道府県部分を省いてから市区町等考えれば非常にシンプルでわかりやすいですよね。B列だけで処理しようとしててしんどくなりました。わずか1行のコードですが勉強になりました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10275]おまけ1-2 引数つきプロシージャの活用

2018-07-19 20:42:03 林さんからの投稿です。

小川先生

引数付きプロシージャは、同一の作業を様々なブック間でやりたい時などに、効果抜群のプログラムだと個人的には思います。例えば、1つの特定のブックに、他の6つのブックからデータをコピペするような骨の折れる業務がありました。このプロシージャのおかげで、メンテナンスが容易で、なおかつ可読性が高いプログラムになり、大幅な業務短縮することができました!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10272]住所情報を都道府県から市区町村レベルで細かく分割する

2018-07-19 02:22:06 morimotoさんからの投稿です。

確かに日本の住所にはきれいに行政区がわかれていないものがありますよね。たとえば四日市市や町田市、、、受講生からご質問があったとのことですが、すっごい着眼されているなと思います。ここでのセミナーの知識は住所を触る場面で絶対活用できそうです。カレーのよき材料になりそうです。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 


各講座ごとのメッセージを見る場合はこちら

 

まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ