'Before
Sub hogebefore()
Range("A2").Value = 2
Range("A3").Value = 3
Range("A4").Value = 4
Range("A5").Value = 5
Range("A6").Value = 6
Range("A7").Value = 7
Range("A8").Value = 8
Range("A9").Value = 9
End Sub
'After
Sub hogeafter()
Dim c
For c = 2 To 9
Range("A" & c).Value = c
Next
End Sub
Sub tenki1()
Range("A14").Value = Range("A3").Value
Range("B14").Value = Range("B3").Value
Range("C14").Value = Range("C3").Value
Range("D14").Value = Range("D3").Value
Range("E14").Value = Range("E3").Value
Range("F14").Value = Range("F3").Value
Range("G14").Value = Range("G3").Value
Range("H14").Value = Range("H3").Value
Range("I14").Value = Range("I3").Value
Range("J14").Value = Range("J3").Value
End Sub
Sub tenki2()
Dim c
For c = 0 To 9
Range("A14").Offset(, c).Value = Range("A3").Offset(, c).Value
Next
End Sub
Sub tenki3()
Range("A14:J14").Value = Range("A3:J3").Value
End Sub
Sub tenki4()
Range("A3:J3").Copy
Range("A14").PasteSpecial Paste:=xlPasteValues
End Sub
ゲストさんの投稿
(投稿ID: 1088)
18回目まで行ったら、第9回からもう一度復習します^^
ゲストさんのコメント
(コメントID: 2239)
よいアルゴリズムを手に入れることが肝心です。
自然言語でも、「意思疎通できればいいのか」というとそうでもなく、「論説の構成」とか、「冗長性を排除した語彙選択」といったことも大切です。
「論説の構成」に相当するのがアルゴリズムですね。ゲストさんの言葉を借りれば、「発想」の部分です。
基礎編では、扱う語彙も文法も極限まで減らしています。
その代わり、演習を通じて、代表的なアルゴリズムとそのアルゴリズムを Visual Basic という言語で実装するまでの手順を習得します。
語彙、文法の知識はそれからつけたほうがよい。
ということで、そっちの話は発展編1以降で扱います。
..と。
いつもならだいたいこのくらいでコメント終わりにしているのですが。
ゲストさんは語学とか言語運用とかへの関心の高い方なので、もう少し。
冗長性排除の例を以下にひとつ示します。
以下は、語彙、文法の選択の例。
例えば、以下の4つのプログラムは最終的に実施される作業はほぼ同じですが、語彙の選択によって結果が変わっています。
tenki4 のプログラムは、文法もこれまでに使っていないものです。
上記のサンプルのいずれも使う可能性があります。
僕の好みは tenki3 の書き方です。
ですが、tenki4 をもう少し拡張して行全体をコピーという記載にすると、コピーする範囲に変動があった場合もこの部分はメンテナンスしなくて済む。
tenki1 の書き方は、僕が書くのではなく、プログラミング初心者/(タイピングの早さ正確さを含めて)言語運用能力がまだあまり高くない人に実際にプログラミングを体験してもらうという段においてはとてもよい書き方です。
tenki2 の書き方も、体験用。 hogeafter の書き方に十分に慣れてもらってから示します。言語運用能力がもともと高い人の場合はすぐにでも教えられますが、そうでなければ、最低でも基礎編フォロー動画のうち半分くらいは自力でやってもらってからですね。
コピー元/貼りつけ先のセルが結合されていたりしたら、さらにややこしいことをまた考える必要があります。
(基礎編レベルの人にそこまで考えて使う手法を選択しろというのは酷な話なんで、講座本編としてはこんな話は決してしませんが)
>これまで何とか自分で解けていますが、動画の解答と比べると原始的な発想なので勉強になります。
>18回目まで行ったら、第9回からもう一度復習します^^
ゲストさんのコメント
(コメントID: 2248)
ありがとうございます、語学や言語運用に興味があります。英語は人生の恩人ですし、言語運用は、小学生のころから考えていました。
(長々と話せなかったので、「どう言ったら最短最小の言葉でわかってもらえるか」というのが至上命題でした)
そう言われると確かに、私がマクロを書くときは一つの方法を思いつき、それでちゃんと動かせる自信があれば、ほかのやり方を模索せずにマクロを書きあげます。
(思いつけたら嬉しい。「ほかにもいいやりかたがあるんじゃないか」と思いつつも思いつかない。それが意図したとおりに動けば大満足な段階なので)
まだ小川先生みたいに複数のやり方を思いつき、その中から状況に合ったものを選ぶ、という段階には達していないんですね。和英翻訳とおなじようなレベルアップの仕方だと理解しました。(翻訳の初学のころは、自分で書けるとどれだけダメだしされても、「自力で書けた」ことを嬉しいと思っていました。今は複数ある表現からどれを選ぼうか、などと逡巡するレベルになっています)
>ゲスト さん:
>
>よいアルゴリズムを手に入れることが肝心です。
>
>自然言語でも、「意思疎通できればいいのか」というとそうでもなく、「論説の構成」とか、「冗長性を排除した語彙選択」といったことも大切です。
>「論説の構成」に相当するのがアルゴリズムですね。ゲストさんの言葉を借りれば、「発想」の部分です。
>
>基礎編では、扱う語彙も文法も極限まで減らしています。
>その代わり、演習を通じて、代表的なアルゴリズムとそのアルゴリズムを Visual Basic という言語で実装するまでの手順を習得します。
>
>語彙、文法の知識はそれからつけたほうがよい。
>ということで、そっちの話は発展編1以降で扱います。
>
>..と。
>いつもならだいたいこのくらいでコメント終わりにしているのですが。
>
>ゲストさんは語学とか言語運用とかへの関心の高い方なので、もう少し。
>
>冗長性排除の例を以下にひとつ示します。
>
>
>
>以下は、語彙、文法の選択の例。
>例えば、以下の4つのプログラムは最終的に実施される作業はほぼ同じですが、語彙の選択によって結果が変わっています。
>tenki4 のプログラムは、文法もこれまでに使っていないものです。
>
>
>
>上記のサンプルのいずれも使う可能性があります。
>
>僕の好みは tenki3 の書き方です。
>ですが、tenki4 をもう少し拡張して行全体をコピーという記載にすると、コピーする範囲に変動があった場合もこの部分はメンテナンスしなくて済む。
>tenki1 の書き方は、僕が書くのではなく、プログラミング初心者/(タイピングの早さ正確さを含めて)言語運用能力がまだあまり高くない人に実際にプログラミングを体験してもらうという段においてはとてもよい書き方です。
>tenki2 の書き方も、体験用。 hogeafter の書き方に十分に慣れてもらってから示します。言語運用能力がもともと高い人の場合はすぐにでも教えられますが、そうでなければ、最低でも基礎編フォロー動画のうち半分くらいは自力でやってもらってからですね。
>
>コピー元/貼りつけ先のセルが結合されていたりしたら、さらにややこしいことをまた考える必要があります。
>(基礎編レベルの人にそこまで考えて使う手法を選択しろというのは酷な話なんで、講座本編としてはこんな話は決してしませんが)
>
>
>>これまで何とか自分で解けていますが、動画の解答と比べると原始的な発想なので勉強になります。
>>18回目まで行ったら、第9回からもう一度復習します^^
>
ゲストさんのコメント
(コメントID: 2254)
>(長々と話せなかったので、「どう言ったら最短最小の言葉でわかってもらえるか」というのが至上命題でした)
なるほど、興味深いです。
「言語の勉強だ」という視点を徹底するとゲストさんのような方は上達早いでしょうね。
壁にぶつかったときは、「自然言語を習得する過程で似たようなことがあったとき、場合どうしたか?」という問いを持つと早いかと思います。
いまさらですし、もう気づかれているかとは思いますが。
釈迦に説法まで。