エクセルマクロ・VBA基礎編
この講座はまだ利用権限がありません
講座を利用するには、以下の2つの方法があります。
- この講座を含む定額コースに参加する
- この講座を購入する
この講座を含む定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
- 【お試し】初級コース(サポートなし) 980円/月 ~
- 初級コース 1,480円/月 ~
- 中級コース 2,980円/月 ~
- 中上級コース 3,980円/月 ~
- この講座は購入可能です (9,800円)

講座の概要
エクセルマクロをきちんと学びたい方のための最初におすすめしたい有料講座。
難易度:
★★
教材ページ数: 45
動画の総時間数: 06時間49分52秒
投稿/コメント数: 1,136件
受講を検討されているあなたへ
エクセルマクロを使った効率化のための基本の道具すべてとその使い方についてしっかり解説する講座です。この講座の内容を習得するだけでも、元データがキレイに整形されたものであれば、数万件のデータをボタンひとつで処理することも可能です。
◆◆受講特典◆◆
購入後に以下が記載されたダウンロードリンクが送られます。
●小冊子「Windows 誰も知らない12の超効率化技」
PDFファイル、143ページ
●小冊子「エクセル意外に知らない基礎知識」
テキストまたはPDFファイル、40ページ
●ツール「個人情報、取引情報変換プログラム」
エクセルファイル
●ツール「メールマガジン一括登録解除プログラム」
エクセルファイル
この講座の利用方法
講座を利用するには、以下の2つの方法があります。
- この講座を含む定額コースに参加する
- この講座を購入する
この講座を含む定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
- 【お試し】初級コース(サポートなし) 980円/月 ~
- 初級コース 1,480円/月 ~
- 中級コース 2,980円/月 ~
- 中上級コース 3,980円/月 ~
- この講座は購入可能です (9,800円)
この講座のページリスト
この講座での投稿
この講座のメモ
※メモを残すにはこの講座の利用権限が必要です。
この講座はまだ利用権限がありません
講座を利用するには、以下の2つの方法があります。
- この講座を含む定額コースに参加する
- この講座を購入する
この講座を含む定額コースに参加すると、そのコースの利用期間中はいつでも講座を利用できます。
講座を購入すると、いつでも講座を利用できます。
- 【お試し】初級コース(サポートなし) 980円/月 ~
- 初級コース 1,480円/月 ~
- 中級コース 2,980円/月 ~
- 中上級コース 3,980円/月 ~
- この講座は購入可能です (9,800円)
動画の視聴を進めていく毎に少しづつわかることや気付くことがあって楽しく学習させていただいてます!
また、コードの埋め込みも試しにやってみたかったのでここで試させていただければと思います!
実務を想定した場合、住所録で「県、府」などが混じった場合ってどうなるんだろうと純粋に思いましたが、講義内容から脱線しすぎないように一つ一つ積み上げる事で対応できる知識・スキルが身につくようになると信じて学習を進めて参りたいと思います!
細かい操作まで説明いただいて本当に丁寧な内容の動画で勉強を進め易いです。
さっそく普段の業務でも活かしていきたいですね。
細かい操作まで説明いただいて本当に丁寧な内容の動画で勉強を進め易いです。
さっそく普段の業務でも活かしていきたいですね。
細かい操作まで説明いただいて本当に丁寧な内容の動画で勉強を進め易いです。
さっそく普段の業務でも活かしていきたいですね。
講義内でもお話にあったように「FoNext」で利用するお話がありましが、「なぜ、For i = 〇 to 〇」という書き方になるのか。また、文字列や変数、代入演算子の考え方について細か講義いただいたからこそ深く理解できたように感じています。
を実行すると実行時エラー1004となります。
また、
についても実行時エラー9となります。
なるほど、と理解したつもりですが、すぐ混乱して間違えそうです。
.valueを書くのをすぐ忘れてしまいます。実際にはエラーにならないので答え合わせをするまで気が付きませんでした。
何度も練習あるのみですね。
現時点の学習段階で質問があります。
コードを書いていくときは基本的には、半角と小文字で書いていくと言うことでしたが、サブプロシージャ名と変数、そしてA1、B1などのセルは大文字で書きはじめるという理解で良かったでしょうか?
セルはa1という小文字でも反応しましたが、先生は大文字で書かれていました。小文字で書き始めない理由は何かありますか?
こんばんは。資料をDLし、講座でエクセル基礎01を開いたのですが
daihon1が見当たりませんでした。
daihon00しかなく、講義の中のF8でのマクロの動きを確認できていないです
見方がわるいのでしょうか。
以下の”Dim”の書き方は何となくはわかるのですが、ちゃんと学習したいので、
どの講座で学習できるのか教えていただきたいです。
すみませんが、よろしくお願いします。
しかし、DounyuやEnshuなど、他のフォルダの動画が見つかりません。元々ないのでしょうか?
Enshu以外のエクセルはそもそもなんなのか、いつ使うものなのかも分かりません。
次はどのフォルダの勉強をするのがよいのかご教示頂けませんでしょうか。
以下の投稿では、コードのハイライト表示はされません。
以下のようなマクロをかいてみたのですが、
H3の欄に何も評価が書かれませんでした。
どうしてでしょうか?
[code]Sub sample0()
Dim tokuten
Dim hyouka
tokuten = Range("g3").Value
hyouka = Range("h3").Value
' If Range("g2").Value > 50 Then
' Range("h2").Value = "合格です"
' Else
' Range("h2").Value = "不合格です"
If tokuten > 50 Then
hyouka = "合格です"
Else
hyouka = "不合格です"
End If
End Sub[code/]
Range("A6").Value = Len(Range("A1").Value)を
Range("A6").Value = Len(Range("A1"))と
.Valueを省略しても良いでしょうか?
試してみたら答えは同じだったので。
F8の一行ずつマクロを確認することができません。
導入編でも質問したのですが、Windows10ではエクセルを開く度にセキュリティを確認すればF8キーで一行ずつ黄色に反転されると思っていたのですが、どうもそうではないようで、F8キーを二回連打すると全て入力されてしまうことも度々で、F8キーが機能している時とそうでない時があって、規則性も分かりません。何か原因があるのでしょうか?
またははPCの不具合でしょうか?
わかりません。先生がされている方が速いので教えてください
小川先生
初めて質問します。質問の回答は登録したメールに返信されるのでしょうか。基礎講座第1章11の質問に対し回答されるのでしょうか。質問・回答のやり取り方法を教えて下さい。
もう1点質問です。
標準モジュールの表記について教えて下さい。
テキストではSheetオブジェクト?と標準モジュールと階層がわかれて表記されていますが私のPCでは並列に表記されています。
並列に表記されても問題ないでしょうか?バージョンの問題でしょうか?ファイルも添付してます。
ご多忙の所恐縮ですがご教授下さい。
江副
動画の作成ありがとうございました。
今後自分が作成したいプログラムが、異なるファイル間でのデータ転記システムなので、非常に参考となる講義でした。
質問がございます。
今回はフォルダ内に保存したファイル名が一定の場合のみに有効なプログラムであると思いますが、ファイル名が転記作業毎に変わる(別のファイルになる)場合のプログラムはどうすればよいでしょうか?転記作業の度にVBAのファイル名を変更するのは現実的ではないですよね。
この講義を受けて、自分が思い描くプログラムを実現するための課題が明確になりました。自分に不足している知識を積み重ねていきたいので、アドバイスを頂戴したいです。
私が実現したいプログラムは以下の通りです
①会社規定の製品情報が記載されたデータ転記元のExcelファイルがある
②_①のファイルは製品毎に用意されており200~300種類ほどある
③転記元のファイルからデータをユーザーから指示されるExcelファイルに転記する。書式貼りつけでなく、値貼りつけもしくは数式貼りつけが指示されている
④_③の理由から転記先のフォーマットが一定でないのでマクロで完全自動化するのが困難
転記元と転記先のファイル名の識別と作業実行が課題になっております。
私が実現したいプログラムのイメージをファイルで添付致しますのでご確認をお願い致します。
教材の作成ありがとうございました。導入編から今回の動画まで確りとした教材を提供してくださったことに感謝しております。
恐縮なのですが、メモ欄の仕様について改善していただきたいと考えております。メモ欄をマイページにて編集・確認するようページを改善していただけないでしょうか?現状のメモ欄は各動画にて自身のメモを振り返る仕様になっているようです。
マイページにてメモ内容を確認できる仕様にしていただければ、ログインの度に自分のメモを確認して振り返りがしやすくなるのではと考えました。
何卒ご検討のほどよろしくお願いいたします。
項目Aは〇〇円、項目BはXX円、、、、if分とシートを最後へ
挿入してから作成(denpyoマクロでやりました)しました。コードを作成していてよかったです。ぼくのド忘れで請求書を作り忘れていて、マクロを知らなかったら30-40分は最低かかるところを1分足らずでできあたって、時間に間に合い上司の雷を受けずに済んでよかったです。if-then else,
in elseif,,,とこの講座に感謝。
試してみましたが、うまくできませんでした。
お世話になっております。
1点質問なのですが、ヘルプを開こうとF1を押すと「visual basic ヘルプを表示するにはインターネット接続が必要ですが、管理者によって接続が許可されていません」
というエラーメッセージが表示されて開くことが出来ません。
*Excel2016を使用しております。
上記対処法をネットで探したのですが2016に関しては掲載されていません。何か対処法がありましたら、ご教示いただきたくよろしくお願いいたします。
なお、私は会社支給PCを使って学習しているので、支給元の会社IT管理者により縛られており変更することは出来ないということでしょうか。。。?
先程、この質問ホームから送信しました松本です。
もう一度以下の通り行いましたら、エラーにはなりませんでしたが、小数点以下が表示されました。
このような場合は、どのようにしたらよいのでしょうか。
合わせて教えていただければ幸いです。
Sub renshu2()
Dim zeikin2
zeikin2 = Range("b1").Value / 100 + 1
Range("C4") = Range("b4") / zeikin2
End Sub
よろしくお願いいたします。
変数に纏めるなど、考え方など、これでもか!という程
丁寧に解説してくださって、本当に分かりやすいです。
この講座にもっと早く出会いたかったです!
変数に纏めるなど、考え方など、これでもか!という程
丁寧に解説してくださって、本当に分かりやすいです。
この講座にもっと早く出会いたかったです!
稚拙な質問で恐縮なのですが、オブジェクトの後に.をつけると正しくスペルを入力してるのにプロパティやメソッドの候補が出てくる時と、出てこない時があるのですが、どんな違いでしょうか?スペルに自信がなくて、候補から選びたいな〜と思っているときに出てこなくて困るときがたまにあります。(Worksheets(”Sheet1”)の後の.とか)機械なので気まぐれさんではないと思うのですが(笑)、どんなときに出て、どんなときに出ないのかが、分からずいつもモヤモヤしています。
こういう時に出ないみたいなパターンなどがありましたら、教えて頂けると幸甚です。
Sub test1()
Range("b1").Value = Range("a1").Value Mod 1000000
End Sub
この場合、オーバーフローのエラーがでます。
これを、A1に2,147,483,647を入れるとエラーがでません。これは、変数利用の場合の長整数型のLONGで扱える範囲と関係していることは理解できました。
セルA1に3,000,000,000を入力して、エラーがでないようにするには、10進数型に変更すればよいのではないかと思い、下記のように変更してためしましたが、やはりオーバーフローのエラーがでます。
Dim d As Variant
Dim amari As Variant
d = CDec(Range("a1").Value) '10進数に変換
amari = d Mod 10000000
Range("b1").Value = amari
◎セルA1に3,000,000,000を入力して、余り計算をエラーを出さずに行うにはどうすればよいかを教えてください。
(因みに、中級まで受講完了しておりますが、実務で対応している時に、かかる問題が生じましたので、算術演算子のところで質問させていただきました。)
よろしくお願いします。
KoubunDrill06の
Range("D6:F" & gyo & "6").Value = 6
自分の使用環境では、エラーにならず、D6:F66の範囲に6の値が入力され正常に動いてしまいました。(使用環境:Excel for MAC 2016)
Windows 環境ですと、上記はエラーになるのでしょうか?
当方のWindowsPCの調子が悪く、確認できない状況でしたのでこちらに質問させて頂きました。
WindowsPCでは全く問題がなかったのですが、MACのPCだと
使用環境:Excel 2016 for MAC
Workbooks.Open Filename:=ThisWorkbook.Path & "\Book1.xls"
にて、ファイルが存在するにも関わらず、ファイルが見つからないとなりデバックのウィンウが表示されました。
インターネットにMACだと区切り記号がWindowsと異なるという情報を見つけ以下の通りに変更したところうまく動きました。
Workbooks.Open Filename:=ThisWorkbook.Path & “/Book1.xls"
因みにネットでは、\を:にするとありましたが、:でも動かず/Book1〜と変更したら問題なく動きました。
質問なのですが、今のところは取り敢えず、上記のような対応で書き換えて
試してみるという感じで進めて行くので良さそうしょうか?
Windowsパソコンが常に使えれば一番良いのですが、メインPCがMACなのです。
VBAの表示の中で、プロパティーウインドーが枠外に離れてしまったのですが、どのようにすれば、最初のプロジェクトウインドーの下に表示されるのでしょうか。初歩的なことで申し訳ありませんが教えてください。
よろしくお願いいたします。
セル範囲を変数で置き換える手順は、「手堅く」ですね。
わかりました。
本やネット検索して苦労してマクロを書いていた頃の自分に教えてあげたいです。
もっと早いうちに、この講座に出会っていればと思います。
”A1”というのを入力するのに、" と A の二文字は
shift キーを都度押しながら入力しているので時間がかかるのですが
簡単に入力できる方法はないでしょうか?
宜しくお願いします。
”A1”というのを入力するのに、" と A の二文字は
shift キーを都度押しながら入力しているので時間がかかるのですが
簡単に入力できる方法はないでしょうか?
宜しくお願いします。
講義の課題から下記のサブプロシージャを作りました。
Sub MANSIONRENSHUU()
Dim KU
KU = InStr(Range("C2"), "区")
Range("F2").Value = Left(Range("C2"), KU)
Range("G2").Value = Mid(Range("C2"), KU + 1, 100)
End Sub
動画では
Range("F2").Value = Left(Range("C2").value, KU)
Range("G2").Value = Mid(Range("C2").value, KU + 1, 100)
というふにleft関数、mid 関数に .value が入りますが、私の回答は間違っているでしょうか?
ご確認よろしくお願いいたします。
講義の課題から下記のサブプロシージャを作りました。
Sub MANSIONRENSHUU()
Dim KU
KU = InStr(Range("C2"), "区")
Range("F2").Value = Left(Range("C2"), KU)
Range("G2").Value = Mid(Range("C2"), KU + 1, 100)
End Sub
動画では
Range("F2").Value = Left(Range("C2").value, KU)
Range("G2").Value = Mid(Range("C2").value, KU + 1, 100)
というふにleft関数、mid 関数に .value が入りますが、私の回答は間違っているでしょうか?
ご確認よろしくお願いいたします。
いつもお世話になっております。
キャプチャーのように作成して実行したら、見本通りになりましたが、
こちらも模範解答としてよろしいでしょうか?
マクロの仕組みをしっかり頭に入れて欲しいという意図を理解しました。
6:20くらいの所から音量が小さくなったり大きくなったり、しばらく小さいままだったり、後半も一回小さい所がありました。意味が取れなくなるほどではないです。
受講環境のせいかもしれませんが、お知らせまで。
アポストロフィーをつかって緑いろの文字をうてるようにするやり方の説明が理解できないでいます。
単語をうってから、小人にはみえない文字をうつのでしょうか?
講義、とても分かりやすいです。
一点、下記の点を教えてください。
home shift ↓↓↓
の後、tabを入れて、”お団子”のところを1つ内側にずらす(インデントを下げる?)のは何故でしょうか。
よくタブを入れ忘れるのですが、それでもなぜか動いてしまった為です。
見やすさの問題でしょうか。
ありがとうございます????!
時間を取られているため。IT等試験ではありません)しかし
会社では適時CODE作ったりしており、フォームまで興味
本位を兼ねてガチガチやってます。しかしほんとこの基礎編知識で浅いフォームですが作成できるとは思いもしませんでした。とりあえずは要求通り動いてくれてますからね。 試験が済んで早く本格的に学習を再開したいところです。
連絡して遠隔操作でコードの手直しを依頼しました。
遠隔操作なので勝手に画面が動いているのですが、まさかまさかのハナコステップでコードをどんどん書いていっていたので実務の方も実践されているんだなと感心しました。・・・もしやその人もこの講座で学習していたのかもしれません。
この度はお世話になっております。
まさか自分がマクロを書ける日が来るとは思ってもおらず、大変楽しく学ばさせていただいております。
1つ質問なのですが、縦の行ついてはfor next構文で繰り返すことができますが、横の列についても同じように繰り返すことができるのでしょうか?
横の列はセルの指定をアルファベットでするのが通常と思うので、普通に考えるとできないように思うのですがいかがでしょうか?
また、もしもそれが可能なのであれば、縦の行を一通り繰り返した後に、1つ右の列にずらして同じように縦の行を繰り返すようなこともできるのでしょうか?
ご回答お待ちしておりますので、よろしくお願いいたします。
小谷
今からPCは替えませんけど、コード書くのにショートカットに制約が出てしまうため、ノートPCならある程度のサイズのものが必要なんですね。
ここまでキータッチを言語化してルールにして提示できてしまうのはすごいです。
2 フィードバック
講義の写経用のPCが持ち運び重視のためsurfaceGOなのですが、
ファンクションボタン(F8など)とHomeボタンなどが同じボタンで、
切り替えボタンを押すともう一度切り替えボタンを押すまでずっと入れ替わったままという状態で、ショートカットキーの相性が悪くて困っていました(こんなにF8とHomeを使うと思ってませんでした。)。
しかし、しばらくして代案を見つけました。
next,Enter,Ctr+Yから通常の流れに合流する作戦です。Homeボタンとファンクションキーの相性が悪いPCのときは選択肢のひとつになるかもしれません。
instr関数は、インストリング(InString)、インストア(Instore)、インエスティーアール(inSTR)といろいろ読み方あるみたいですね。
結局使うときはinstrなので、実現される機能は一緒ですが(^^*
教科書的な定義から、コーディングのコツやノウハウを見せてくれる段階に入ってきて熱いです!!
ちょっとは本で勉強したりコード書いたりしてたものの、こういうのを期待して受講したんです!!楽しい!
いきなり「=」などの算術演算子を押しても確定できました。しかし、tabを省略していきなり「.」を押してみたら、確定できるけどwindowsの警告音(ピローン)みたいなやつが鳴ってしまいました。静かなところで試していたので焦りました(^^*。
スピード自体は速くなるけど「.」はやめた方がよさそうです。
range()だけだと自動データヒントが働きませんでした。
range().valueだとデータヒントが働くんですね。
valueを使うメリットを1つ学びました。
my消費税計算
my税率
などとしておけばば、ctr+space,ctr+j
で自動変換が利くと思います。日本語を含むだと後任者(数日後の自分含む)が速く理解できる反面、Dim時に半角全角切替が必要なので面倒ということですね。
そこで質問なのですが、
[cord]Sub IfSample06_01()
If Range("E7").Value = "男性" Then
If Range("G7").Value >= 80 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
Else
If Range("G7").Value >= 70 Then
Range("H7").Value = "合格です"
Else
Range("H7").Value = "不合格です"
End If
End If
End Sub[/cord]
この構文でEnd if の後のelseからの読み方といみがわかりませんでしたので、どんな役割をはたしているのがお手数ですが説明の程、よろしくお願いいたします。
実感としては、必須知識がひとつひとつ積みあがって形になっていく感じです。語学学習に近いのかもしれませんね。
9:00~の文字の範囲について要復習!
instr関数をif文の中で使うというやり方をしれて良かったです!
For next構文を作る際に、勝手に手が動いたので自分でもびっくりです!(if文はまだ考えながらという感じですが)
ハナコのステップは参考書に載っていない思考なので学べて良かったです!
繰り返し現れるセルは変数にまとめる。
→マクロが引き締まる。すごい!
1行ずつマクロを試すとういお話が、すごく良い学びになりました。
left関数をそのままコピペして、mid関数にして試してみる
→「線」以下の文字が抜き出される
→「sen-1」で試すと「急線」以下の文字が抜き出される
→「sen+1」で試すとうまくいく
という思考の流れは参考書には載っていない為、受講して本当によかったです!
”E1”と”E2"には値が入るという繰り返しの説明になぜ??と思っていましたが、エクセル関数との挙動の違いを聞きなるほど!と思いました。
LM関数ですが、worksheetfunction. を先頭に追記して動く事を確認しました。
次の質問ですが、マクロのシートをご覧いただくとコードを2本書いています。
上はコードは動くのですが、下のコードが動ききません(sub keisan2に上のコードだけかいてあります。こちらは動きます。)
下のコードのsqrtの前にworksheetfunction.を追記したのですが、LM関数とは違いworksheetfunction.ではsqrtは動きません。
そこでsqrtを計算させるにはどのようにコードを修正すればよいか教えていただけないでしょうか。
宜しくお願いいたします。
設楽
for next構文だと、XX to YYというように、行の終わりまで指定しますが、
行の終わり不明なシートにVBAを実行するときに、for next構文は使えるのでしょうか。今後の学習内容に含まれていますか。
画像添付するので、原因を教えてください。
画面に
動画を再生できません
この動画は YouTube でご覧ください。他のウェブサイトでの再生は、動画の所有者によって無効にされています。
とでます。
試行錯誤して動いた瞬間、めちゃくちゃスッキリしました!!
オブジェクトでSheetsとすれば、エクセルシートもグラフシートも指すという内容がありましたが、それでもWorksheets, Chartsを使うことが基本となっている理由を教えてください。
素人考えで恐縮ですが、大は小を兼ねるという意味でSheetsでカバーできるならそれでいいのでは。。と思ってしまうのです。
VBA初心者です。(N88BASICとLOTUS1-2-3のマクロを作った経験あります(笑))
ドリルで誤って
range("c4").value=range("b4").value*zeiritsu
と書こうとして
range("c4")=range("b4")*zeiritsu
と,valueを忘れてしまいましたがちゃんと結果が出ました。
.valueを忘れてしまった場合に何か不具合がありますか?
テストして修正が上手くいったか否かはもう一度最初からテストすることになりますか?
が、実際の作業を効率化させる上で、おそらく初歩的な質問にぶちあたってきました。
実作業的な話ですが、たとえば3つのファイルが同一のフォルダに格納されているとします。
やりたいことは、以下の3つのファイルに同作業を施し、上書き保存することです。
例えばですが、
┗格納されているフォルダを開き、
┗ヘッダー部分に色をつける
┗シート全体の字体を、Meiryo UIにし、フォントを「9」にする。
┗上書き保存して、閉じる。
For Next構文やDo loop構文を使うのかな??、、くらいは分かるのですが、
マクロを実行させるためには、フォルダ内を横断するような場合、プロシージャをどこに書いていけばよいのでしょうか・・
ひとつのファイルに、ボタンなどを設置し、マクロを実行させる場合は分かるのですが、
フォルダ全体に作業を施す場合のイメージが掴めないのです。。
3つのファイルが置いてあるフォルダに、マクロ実行用のファイルを置いてあげて、それを実行させるイメージでしょうか?
Range("C6:E6").Value = 6 エクセルから左のコードをメモ欄にコピペしてメモを更新しますと
Range("C6:E6").Value = 6の状態になります。正しく更新される方法はないでしょうか。よろしくお願いいたします。
Range("C" & gyo & " : E" & gyo).Value = 8 左のコードでは、gyoの後ろには、&があってから:が続いています。この&がなくても動くのかとおもったのですが、動きません。"C" & gyo " : E" & gyoでは動かない理由を教えていただけますでしょうか。
宜しくお願いいたします。
1点目の操作をミスしておりました。すべて同時に押すと勘違いしておりました。おかげさまで、解決いたしました。
丁寧なご回答、ありがとうございました。
そこで下記のように行間を開けて入力しましたら、VBAを動きました。
ここはレイアウト調整が効かないのでしょうか。よろしくお願いいたします。
Sub ForNext1()
Dim gyo
For gyo = 4 To 13
Range("b" & gyo).Value = 8
Next
身に付けるのにまだまだ時間がかかりそうです汗
小川先生に質問です。
daihon[4]_kaitoで、税率の値の設定を
zei = Range("B1").Value
として、最後にzei/100としています。
※問題の指示通り50、100…と記入するのでしたら、zei/10でしょうか?ファイルが古いものでしたら、失礼いたしました。
自分で書いたときは、
zei = Range("B1").Value/100
として、マクロを実行しましたら、先生の解答と同じ値が記入されました。
結果は同じでしたが、先生から見て書き方等修正した方が良い点などありますか。とんちんかんな質問で、申し訳ございませんが、よろしくお願い致します。
過去にマクロを独学で学ぼうと本を買って勉強しましたが、イメージがつかないものを学んでいるようで苦労したので、今は楽しく学ぶことが出来ています。少しずつですが知識を増やしていきたいです。
以下の投稿では、コードのハイライト表示はされません。
初めてコードを文中に書いてみたのですが、
お手本のように反映させるには、sub~endsubまでを[code]で囲む必要があるのですね。
失礼しました。
kiso04_03IFThen_drill.xlsの練習7に行き詰っていいて、回答を確認できたらと思いました。
kiso04_03IFThen_drill.xls-[daihon0010(コード)]の回答そのものは作成していないので、Kiso04_04IfThenHanako.xlsを参考に自分で考えましょう。
Kiso04_04IfThenHanako.xls
をご参照ください!
> お世話になります。
> 誠に申しわけございませんが、
> kiso04_03IFThen_drill.xls-[daihon0010(コード)]の練習問題を
> していますが、回答はどこに記載しているのかがわかりません。
> 教えてください。宜しくお願いします
ようやく2章に突入しました。
どんどん新しい知識がつくのが楽しいです。引き続き頑張ります。
感想フォームに入力するのは、初めてです。
丁寧な解説ありがとうございます。
動画を見ていると、なるほどこうやるんだ!と、納得しながらなんとか、
ここまでの動画をこなしています。
しかしながら、自分でいちからVBAを書くとなると、
式の考え方が、やはり難しいなと思ってしまいます。
今回の動画なら、関数をどうやって選び使っていくか、などです。
もっと、経験していけば、こうやればいいのかなと、
考え方が身についていくのかと、少し不安な部分もあります。
もう一度エクセルを開き直し、実行を行ったところ、問題なく実行できました。先生がおっしゃられる通り、操作ミスでプログラムを壊してしまっていたのかもしれません。これから同じエラーがでた時、自分ですぐに対応が出来るので、原因をお聞きできて、良かったです。ありがとうございました。
>>極めて多いのは、タッチパネル等の操作ミスでプログラムのどこかを壊してしまった、というケースです。
原因を見つけられないようでしたら、サンプルデータを再度DLし、そのDLしたサンプルデータで再度試していただけますでしょうか。
↑
それでうまくいったか?結果もお知らせください!
> 動画と同じようにdaihon0031の実行を行おうとしたところ、実行時エラー'5’エラーの表示が出て実行できませんでした。「プロシージャーの呼び出し、または引数が無効です。」ということなのですが、何が原因なのでしょうか。よろしくお願いします。
びっくりしています。ほんとわかりやすい講座です。おまけに
今までなかった感覚ですが、基礎編を超えた範囲でも、たぶん
こんなことvbaでできるんじゃないかなーとネットで調べてコードつくれるようになりつつあります。自分の中ではinstr関数、a & gyoと
いう書き方、ハナコステップが強力に感じましたが、もっと強力なのはこの講座だと感じました。1コマが10-15分なので疲労帰りの
小生でも何とか頑張れる時間内です。
判断させまた分岐さて、、、絶対使う関数であるからこそないがしろにはできないなと感じました。何もしてほしくないときはend ifで終わる。、、、非常に大切だと感じました。そして意外によく使う、、、ような気がしました。
copy pasteを地味に繰り返したり枠をつけたり、、、、基礎編の知識
とネットで調べてたらすっと数秒でできるのを作りました。コマンド
ボタンまで付けました。基礎編でもそこそこできるようになるも
のですね。ほんといい講座です。1講がさほど長くないので
取り組みやすいです。
でも小人ちゃんの配慮で文字列以外も文字列とみなして結合してくれる。
結合結果(文字列or数字のどちらとみなされるか)は、結局そのセルの書式設定に依存すると理解しました。
例:range("b5")でもマクロは動くけど、range("B5")としたほうがよい?
また、マクロのコードは小文字で書いても大文字自動変換されるけど、セルは変換されないのですね。ここは関数と違うのですね。
仕事、家事、育児の両立と不安もありますが、これが習得できる最後のチャンスくらいの気持ちで、あきらめずにくらいつきたいと思います。よろしくお願いします。
早くいきたいですね。
最初に箱を作っておけば、どんなに長いコードであっても『For に対するNextがありません』ってエラーも出ませんしね。
わかりやすいです。
その後に解答・解説として動画を視聴し、2ヶ所動画と違う修正の仕方でマクロが動きました。
・Sub KoubunDrill04()
Range("D" & "4).Value = 4
ですが、自分は4の前にある「”」を消して
Range("D" & 4).Value = 4 としました。
同じく
・Sub KoubunDrill05()
Range("D" "& 5).Value = 5
の&の前の「”」を消して
Range("D" & 5).Value = 5としました。
マクロは動きましたが、今後色々とマクロを覚えるにあたって今回の動画のように数字の前後に「”」をつける癖をつけた方が良いでしょうか?
動画と違う修正でマクロが動きましたが、余計な「”」を消去したという説明しかできないので、アドバイスお願い致します。
自分だけに限らず、他の人も見て何となくどういうマクロか把握できるのでコメントをつけるという癖も身につけておこうと思います。
こういった内容は、市販の本には記載されていないように思います。
まさに現場学の内容ですね!
躓かずに継続して学べそうです。
というのも、この動画を見ただけで何となくどんなマクロが実行されているのか「読む」事が出来たからです。
視点が変わると、意識も変わり、継続してマクロを学んでみようと思いはじめました。
今まで何度もIf構文とFor Next構文でつまづいていましたが、理解できていなかったのと、全体の構造をつかめていなかったことが、改めてわかりました。ありがとうございます。
初めて質問させて頂きます。
業務で2つのファイルを開いて転記をすることが多くあり、こちらで学んだ内容を活かしております。
が、いつも悩む事があります。
転記元と転記先とどちらにマクロを書きかますか?過去の動画の中でどっちに書かないといけません等、決まりについて説明している動画はありますか?
また、転記するファイルのパスはパソコンのドライブから指定しないとダメなものと平気なものとの違いを教えてください。
実務で使ってみているのですが、うまく行かず困っています。
よろしくお願いします。
>使い分けに困ることは、今の段階ではほぼないと断言できる
と、断言してくれたことで逆にスッキリしました。
全てを理解してから次に進むより、『そういうもんかな』という理解であっても先に進んだほうが、結局は早道(後からきっと繋がる気がする)だと思いました。
ありがとうございました。
何となくわかったような気がするというレベルを、人に説明できるぐらいまでブラッシュアップして参ります。
「複数のサブプロシージャーで変数を共有したい場合は、サブプロシージャーの前に変数宣言すれば良い。ただしあまりお勧めしない。」とネットで見た(記憶がある)のですが、お勧めしない理由は何でしょうか。
第一目的を達成できそうなので、導入編に戻ります☆
余談ですが、教科書をもらったら一通り目を通し、面白そうだなと思った問題を解こうとしても当たり前のようにわからないので、学校の先生に聞くと「その問題はまだだ」と怒られ、塾の先生に教えてもらっていたことを思い出しました(笑)
大人になっても変わっていないようで、どんなことが学べるのかをざ~っと見ていた時に、目的の回があったので飛びついてしまいました。
失礼いたしました。
大きなPOINTのように感じました。
フォルダerrorの中のファイル名mainのsheet1のA3セルの値をファイル名tenkiのsheet1のB3セルに転記したいと思っています。
よろしくお願いします。
アドバイスありがとうございます。
[1]について、マクロでデータをうつせるようになりました。
[2]について、今日チームへの説明の機会をいただきました。しっかり説得力のある説明をしたいと思います。
[3]について、成果物が形になってくると、やりきるぞ!という気持ちがわいてきますね。先生がおっしゃった、スキルと意思が相互に強め合うというのを身をもって感じています。
取り急ぎ今日は[2]に注力します。
アドバイスありがとうございます!
「プログラムを投稿する場合のヒント」のコードはエクセルに入れるものではなかったことに気が付きました。
失礼いたしました。
ファイルを送りましたのでよろしくお願いします。
よろしくお願いします。
おっしゃる通り、ほかの方も取り扱うファイルですので、皆さんの同意を得る必要があります。
私が使いたい分のシートのみをコピーして別ファイルに保存するということにして、元データには支障ないようにするという方向で行こうかと思います。
それでも同意を得られなかった場合は、どうしよう。。。
ありがとうございます。
データが重いのは、おっしゃる通りRが30種類(数えてみたら多かった)ほどひとつのブックに入っているからです。
まずは一度ファイルをあけて、関係あるファイルのみ抽出して、そこからDを作るというという流れかなと思っています。ご意見伺えませんでしょうか。
複数ファイル間でのデータの転記、時々ある業務でコピペで数日間かけてひたすら、、、という地獄が一気に解決!と意気揚々としていたのですが、自分でプログラムを書いてみるとうまくいきません。
この動画のたった一つの文章でもうまく動きません。。。
イコールの前が間違っているのかと思い、値を入れるプログラムを書いてみたところ、それはうまく値が入ります。
イコール以下が間違っているのかと思って、コピペをし、ブックとシート名を修正しましたがうまくいきません。
元データの値が消えてしまい転記されないのです。
何が間違えているのでしょうか?
コピペとサヨナラの扉が目の前にあるのに、開けることができないもどかしさを抱えつつ出勤してきます。。。
元のデータファイルが1メガ以上あって、開くのだけで10秒以上(体感なので、もっと短いかもしれないし長いかもしれません)かかってしまいます。参照したいデータファイルは300以上あります。300個を開いて閉じて、としていたら負担がかなりかかりそうです。
やりたい動作は、データファイルにある20シート中のひとつのシートの数行をコピーして、マスターシートに書き込むというものです。初心者考えなのですが、ファイルを開くのは大変だけど、中身の処理自体は時間かからないのかな、と思っています。
容量を軽くした3件のデータファイルを使ってサンプルで作ってみたところ、処理自体は出来るのですが、完了までに1分以上かかってしまいました。本運用した場合、負担が大きすぎてフリーズしたりパソコンがダウンしてしまわないか心配です。
そのような場合、マクロの処理の負担(?)を下げ、時間を短縮させるためにはどんな方法があるでしょうか。
ネットで調べたところ、ブックを開かないでデータを持ってくる方法(ExecuteExcel4Macro)や、スクリーンの更新を解除などがみつかりましたが、これらについてはいかがお考えでしょうか。
もしくは、特にどの講座であったり、どの講義をみるとヒントがある、ということを教えていただけないでしょうか。
よろしくお願いします。
range("a" & gyo & ": j" & gyo)・・・文字列のdrillでも似たよ
うなことをやりましたが、ついrange("a" & gyo : "j" & gyo)書いてしますのですが(もちろんエラー) : j の部分を &で結合し、文字列にするため""をつけ & " : j"にするという理解でいいのでしょうか?
エクセル関数とマクロの違いを対象的に動作を交えた説明が大変分かりやすかったです。
ずっと、SubはSubjectだと思っていました~。^^;
何も悩まずできるもんですね。このハナコステップの視点はすごいです。
あります。がハナコの視点で見てみると意外にどこがダメなのか
見えてきそうな気がします。っとなんといってもちゃんとした
おいしいダンゴを作れるようになりたいものです。
あと、End Subを言い終えたら変数は消して帰って行くというのが、「へえ~」と思いました。
cells(i,j)とか市販の本はなってるんですよね。range型だけ知ってれば
十分な気がします。
テキストを見ながらinstrなのかleftなのかmidなのか、、、、と見ながらできました、、、がハナコステップをしらなかったらきっと完成しなかったと思います。最小単位で地道にf5を押しながらダンゴを作り、完成したら
箱入れしnextしたらおしまい。。。ハナコステップの視点は大切ですよね。
非常に印象的でした。簡単なコードですが書いたりするとき
なんとなく書いてできた~って感じでしたが、このハナコステップの考え方はほんと視点が変わりました。今後コードを作る場面での考え方、視点が大きく変わりそうで役たちそうです。っがもっともダンコを作るのが一番難しいかも、、、ですよね。おいしいダンゴができればいいのですが。。。
イメージをつけるのに役立ちました。仕事で使うデータにハイフンがありその左側、右側に分け出す場面に使えそうです。
*IF Then構文では、ひとつの構文の中で複数の分岐を行うことができる。
・複数の分岐を書くときは、優先的に処理されるべき条件を先に書くことがポイントだと思いました。
・スッテップインで実行される動画を見て、条件が実行されるとEnd Ifまで飛ぶ動き(流れ)がよくわかりました。
結果001になると思ってましたが、書式を文字列に設定しておかないと
いけないことは知りませんでした。ほんとにこの細かいことを講義で触れて
ただけるのですっごい役に立ちます。この辺をきちんと触れている市販本
は見たことがありません。
1つ1つコメントで何をしたらいいのかあらかじめ書いて
あるので非常に取り組みやすいです。本はたいてい解答例
しかなく、まあせいぜいあってもP.〇〇参考くらいしかなく不親切ですが、このdrillはほんと取り組みやすい。
D4の値が変わればそれに伴ってE4の値が変わるという記述(式的入力)ですが,
やはりvalueを使っては、結果が値となるため、記述できないものでしょうか? この数値の書き方を始めてみてすっごい新鮮だったので他に別の記述方法がないのか気になりました。
「復唱」するという考え方をもっていなかったので新鮮。
早速にご回答いただきありがとうございます。
何を使うかがわかれば、簡単に調べることができるので、これだけ教えていただければ十分でございます。
ありがとうございました。
行数がわからない場合に、有効なデータが入っている行数を数えて指定する方法を教えて下さい。
Dim gyo
For gyo = 2 to 51
上記の「51」部分を関数に置き換えればよいと思うのですが、その関数がわかりません。宜しくご教示お願いいたします。
ここまで詳しく説明を聞いたのは初めてです。
たとえば本なのでは当たり前のようにworksheetsやworkbooks
等でてきて、何も考えず「そういうもんや」とやってましたが
今回の説明でかなりイメージできました
小さな成功体験の積み上げは大切だと実感します。少なくともここまではできたという確定ができるし、どこで道に迷ったのかを特定しやすくしますね。バレエダンサーがバーの基本動作を忘れないように、まずは基本に忠実に行きたいと思います。
kiso_mm_movie.pdfの、Visual Basicの文法というページです。動画に映っている算術演算子のリストはありますし、変数という項目もあるのですが、「宣言する」などの文字はありません。
私がファイルを勘違いしてたら、教えてください。
ワークシート関数でできること、得意なことと、
VBAでできること。状況によりどちらの方が良いかの見極めなどを
しっかり学んでいきたいと思います。
もし決まれば、次の仕事では大変役に立つ分野です。
先方のお話では、「マクロも使うが、関数を使ってフォーマットを整えていく処理が多い」とのことでした。
valueは値だけなので、あえて数式を残したいときは関数、、
ということになるのでしょうか。
まだ全体を思い出していないので、今後の自己課題です。
gooska
1.エクセルシート(Kobito1)とコード表が一覧できず、F11で行ったり来たりしてみていますが、一覧できる方法はどうすればいいのでしょうか
2.動画にあるようにコード表のRange("A1").Value = 5 の後ろにカーソルを置きF8をクリックしましたが、エクセルシート上の変化が見られません
どこを見ればいいのでしょうか
もしくはどういう作業が不足しているのでしょうか
今回のハナコのステップといい、ショート カットキーといい、先生の言われる「役に立つ必要なことだけを教えます」そのもので、これだけでもこの講座を受講させていただいて価値がありました。。今までまさに私はずっと、ネットで調べて上からなぞって、マウスを使って切り貼りしていました。自分ででもあちこちで鈍臭さを感じていました。ありがとうございます。
お返事ありがとうございました。
実践あるのみですねやってみます(>_<)
エクセルを触りだしてまだ半年。仕事で関数式を組み合わせてデータ作成をしています。こちらの講座で勉強して仕事のスピードを上げたいと思っています。
演算子の特徴はマクロだけのルールではなく、エクセルのセル自体のルールと思ってよろしいでしょうか。仕事でデータ作成をしている中で文字列、&、” ”、が多く出てくるので混同してしまいそうなので質問です。
繰り返しと感じたのは
[a]講座第2章6で述べている
[b]講座第1章12で述べている
[c]講座第1章12で述べている
繰り返しが大切なのはわかります。
でもそれを「講師」が繰り返すのが大切なのでしょうか?
講師が講習生に「繰り返させる」ことが大切なのではないですか?
何故こんなこといちいち言うかというと、
視聴中「あっ、この内容また言ってる」と感じた時に脳が(パソコンでいう)スリープ状態になり、
新情報がその後入ってきても聞き逃してしまう恐れがあるからです。
せっかく動画という媒体を使って学ぶ講義なので、
「この内容は講座第○章○で説明しているから省くけど、分からなかったら見返してね」ぐらいではいけないのでしょうか。
むしろ「講座第○章○」のように(必要に応じて)見直す地点を繰り返してもらう方がよっぽど講義の集中力の維持に役立ちます。
繰り返し?
だとしたら、非常にかなしい
今回に限る質問ではないのです。
先生がいつも口を酸っぱくして言っておられるキー操作のことで質問です。
講義中 range("A1")...のように華麗に打ち込んでおられるのですが、( は左の小指でシフトキーを押しながら 8 のキーを右の中指で押して、” は右の小指でシフトキーを押しながら 2 のキーを左の薬指で押して、A1を入力してまた ” と ) をまたシフトキーを交互の小指を使いながら押すと思うのですが、映像を見ているとこういう操作で入力しているようには思えないくらい早いです。
range(" ")の操作は一番多く出てくる操作だと思うのですが、わたしはどうしてもそこでまごついてしまいます。
何か入力の仕方が特別なのか、ただ単に早いだけなのか教えていただければと思います。
そこで、同じように記入するところは、変数a,bでいいかな?と思い、
以下のようにしてみましたが、range("h" & c) には値が入って
きませんでした。
エラーは出ていないのですが、変数の使い方に問題があるので
しょうか?
変数a,bのところをrange~とすればきちんと実行されます。
よろしくお願いいたします。
> 講座をやっていると、英語(英単語)に慣れてない受講生の方も
> ままいらっしゃいます。
> そうすると、「adrs」とか表記しても、その趣旨の理解だけで
> 頭がいっぱいになってしまう方もおり、講座にならなくなって
> しまうことがあります。
> なので、ベタでも、講座では、あえて、「jusho」とかいう表記を
> しています。
激しく納得しました。
変数名から目的を連想できないといけないので何がなんでも英語に
こだわる必要はないですね。
特にいろいろな背景の個人が本講座の対象と考えると余計に、ですね。
引き続きよろしくお願いします。
回答ありがとうございます!!
励みになります!
確かにVBAの予約語orキーワードを変数名に利用してしまうのはよろしくないですね。
個人的に日本語のローマ字読みはmigi, hidari, ue, shita などは好きではないので 英単語省略adrsなど.. で行こうかなと思います。
丁寧な回答+解説ありがとうございました。
VBAは仕事でも使った経験があるのですが、今回体系的に基礎から学びなおしたいと思い、オンライン講座受講しています。
先生の動画がわかりやすいのでいいペースで進んでいます。
確かに自分でやってみると、わかるし、マクロの練習にもなるし、理解も深まります。解説を読むと、よりマスターが早まりますね。
夢が実現しつつあります。
その前に、フォロアップをしっかりやって
手を動かして身につけていきます!
うわぁー
やりたいことに近づいてきた。
学びます!
必要な条件を満たしているものだけを抽出できる
・Len関数やInstr関数を使うのも有効な方法であることを知った。
Else
End If
の型を紙に書いて暗記しよう。
複数条件は難しい。。。汗
そのためには大事なのは、はじめの おだんご 作りだ!
A<>B AとBが違う
A > B AがBより大きい
A <=B AがB以下
等号、不等号の意味を再確認した。
一つ一つのチェック作業でマクロがちゃんと動くかを確認してから進む!
For Next構文は箱を暗記する!
私にもできた!
dim 変数
for 変数=数字 to 数字
next
サクサクできるように練習する
でぃむ 変数
ふぉー へんすう いこーる 数字 とぅー 数字
ネクスト
ポイントは Dim を入力する前に タブキーを押すこと
数字 to 数字 の間にはスペースを入れること
しっかりと叩き込んだ!
ハ=箱を作る 範囲を選択する
ナ=中に入れる お団子(作ったマクロ)を箱に入れる
コ=加工する "c"&hensu にする
しっかりと型を暗記するぞ!
・ForNext構文
・If分 などがあり、実際にみてワクワクしてきた。
ハナコのステップ楽しみだ!
同じ作業の繰り返しは単純作業であることが
「わっすごっ!」と声が出るほど感動した。
For Next構文を学ぶ前に作る「プログラミングのツボ」を要チェック!
【動画8】【動画9】を再度見直しました。
Dim を使うメリット
・わかりやす変数名にしておくとその処理の内容がわかりやすい
・各行のプログラムが何を意図しているかわかりやすい
・何度も計算するものは変数を使用すると入力時間の短縮になる
・同じ計算を何度もするのはメンテナンスをするときに大変なので変数を使用する
以上が Dimを使うメリットです。
8778 : 小川慶一の回答 (2017-08-27 00:56:48)
受講生 さん:
> Dimを使うことでマクロが作りやすくなる。
↑
人への説明としては間違いです。
イイタイコトは分かりますが、だからと言って放置すると、別のページでの指摘のようなことのくり返しになりますので。。
第1章の変数について説明してる動画、レジュメ資料等を振り返り、お書きになった一文を修正してください。
マクロの書き方は
コピペ→一カ所書き換えたら動きのチェック→OK→次へ進む
→No→修正する
少しずつ進む意味が分かった。
どうしたいのかフロー?図を紙にかいて
プログラムをひととおり紙にかいてから
それをみて一気にエディタに入力してます
こっちのほうがわたしとしては頭が整理できていいのですが
みなさん直にパソコンで入力してるんですよね?
どちらでもいいのでしょうか?
ちょっと気になりました
・思考 と ・行動
明確なゴール
スモールステップ
書きながら考えすぐ実行!
できるだけコピペ
次からいよいよマクロ書くぞ!
今回は”区”がキーワード
イメージは、
①区を見つけるマクロ
②区の前までを表示するマクロ
③区の後ろから全てを表示するマクロ を作るイメージ。
大変だけど、大事!
・ Left
・ Mid
・Right
・Len
・Instr
スペル見なくても書けるようになったぞ!
分かったつもりになっていることがよく分かる。
・Left関数 は 文字列
・Mid関数 は 文字列
・Right関数 は 文字列
・Len関数 は 数値
・Instr関数 は 数値
・InStr関数 は引数の中で指定された引数が左から数えて何文字目にあるかを返す
指定された引数(文字列)がない場合は0を返す
次はドリルだ!理解を深めるぞ!
・Left関数 は 文字列の左から引数分だけ文字を返す
・Mid関数,引数 は 文字列の左から数えた引数分以降の文字を返す
・Mid関数,引数A,引数B は 文字列の左から引数A分数えた文字から
引数B分文字を返す
・Right関数は,引数 は 文字列の右から引数分だけ文字を返す
・引数と引数の間はカンマ(,)を使う。ピリオド(.)ではない。
・Home を押すと 先頭と書き始めを選択することができる。
・プロパティーの選択をしたとき、決定するのはTab!
Enter
Backspace
Tab
を使って書くのが基本!
Const zeiritsu As Long = 0.05 ではなく、
Const zeiritsu As Single = 0.05 でした。
わかりません。定数ですと、Const zeiritsu As Long = 0.05 のような記述になりますが、どちらがベターでしょうか? よろしくお願いします。
自分なりに「自分自身で添削」を行いました。
小川先生の仰っておられる意図と違っていたらすみません。
> プログラム表記はこれで上手にいくかな?テスト兼ねて投稿です。
問題なく投稿出来ておりました。
OKです。
>演習に入る前に自分で何も見ないでコードを作成してみました(F列、G列)。
> ここまでの練習で、ForNext構文のイメージが湧きやすかったので、
> ForNext構文にて記載しました。
この問いかけを書いたタイミングの理解度だと、
「instr関数やleft関数、mid関数で条件を作る」
→「For Next構文」という箱に入れて回転させる
というイメージ曖昧で分離して実感できていないですね。
フォローアップに取り組みながら、
「小さいものを作る」「箱の中に入れる」「加工する」
というハナコのステップを練習することで、
自然と上記部分の分離がなされてきたように感じます。
仮に、For Next構文なしでこの関数を記載するとしたら、
行数が非常に多いマクロが完成したはずです…。
> これじゃないパターンで作るとどう作れるのかな?
> と楽しみにしながら動画を拝見していきたいと思います。
フォローアップの練習+
皆さんの書かれているコード等を参照させて頂きながら、
多様な考え方にあたり、体験していくのが一番早いと感じました。
まだまだ練習不足です。
一歩一歩進めていきたいと思います。
以下、コードも記載してみましたが、
こちらはあまり改善らしい改善をしておりません。
引き出しが少ないように感じております。
もっと作業回数を増やして気づきを増やします。
添削を通じて、
書くことで「過去の思考過程の整理ができた」「これを書けるということは短期間で過去の自分よりも知識が身についている証明である」という感想を持ちました。
コメントありがとうございました。
>浦山さんの場合は、フォローアップをやってみて、行き詰まったら、それから>講座本編の資料を見直したり、動画を見直したり、というのでも良いかと思
>います。
こちらのコメントを拝見し、フォローアップから取り組むことにしました。
必要に応じて基礎編の動画と行き来する形で進めていく方針に致します。
>フォローアップ演習の動画は、
>通勤時間の電車の中等でも見られるかもしれません。
帰宅時は拝見するようにしていますよ(*^^)v
良い復習になっています!
>あと、実務もマクロをガンガン活用してください。
フォローアップ7まで動画を拝見しました。
次、手を動かします。
職場はRの状態で書かれたExcelの相談記録100シートがあり、
強引にワークシート関数(Index)を使用してDの形に纏め、
報告書や分析ピボットを形成しやすいようにしています(カウンセリングの記録なので所謂、Excel方眼紙状態の非常に取りこみにくいRです)。
□シート名の変更が頻繁にあるのを処理として何とかしたい(現状、練習不足なので構想はあるもののぼんやりしている為、今は練習に集中)
□入力ミス、漏れが発生しやすいので(職場が殆ど60代以上のPC不得手な方で構成されている関係上)、フォーム等で入力ミス削減、入力データの統一を図りたい(現状は入力規則で縛っていますが、これをフォームにしてみたい)
などなど、少しずつでも形にしていきます。
データ自体は100~150個位が月間に発生するだけなんですが、
マクロに置きかえられるところを置き換えていけば、
私の仕事時間は限りなく0に近付けられるはずです。
仕事は個室でゆっくりできるので、
浮いた時間は更にスキルアップしてもっと大規模なデータや、
複雑なデータを扱えるようにして、年収アップも狙っていきたいと思います。
その為にもまずは現状で負荷を限りなく0にするところから始めたいと思います。
続きもがんばります!
職場では動画が見られませんが、ファイル自体の操作は行えますので、
動画を見ながら触ったコードを何度も何度もやり直して体に染み込ませたいと思います。
そのうえで、フォローアップに挑みます!
演習に入る前に自分で何も見ないでコードを作成してみました(F列、G列)。
ここまでの練習で、ForNext構文のイメージが湧きやすかったので、
ForNext構文にて記載しました。
これじゃないパターンで作るとどう作れるのかな?
と楽しみにしながら動画を拝見していきたいと思います。
他コメントで出てきているみなさんが記載したコードも、
自作したあとで拝見させて頂くと「こういう方法もあるのか!」
ととっても勉強になります。
Excelファイルでテストしたところ、
以下2つのコードが思うように動作したことを確認済みです。
↑gyoとjuushoを変数にしました。
↑gyoだけ変数にして、juushoは使いませんでした。
何回も書き直しがあったので纏められた方がいいなと感じました。
「イヤでも思考が整理されて文章作成が早くなるワークショップ」
ですね。
以前とはメモリの負荷が全く違う感覚です!
「考える」「作業する」に集中できてますよ♪
「:」を「&」等の結合演算子と誤認識し(勝手にルールを作ってますね)、
””の間に挟まなくても認識するはずなのになんで~!?
と考え込んでいました。
動画拝見させて頂いてRange(”C8:E8”)のように文字列として捉えた場合に認識してくださるというように認識できたら以降の問題もさらさら解けました。ありがとうございました!
まだ続けられる時間があるので次へ行きます!
ForNext構文もチャレンジしてみました。
ショートカットと同じで、
「慣れるまで」「覚えるまで」「呪文唱えながら」「つぶやきながら」
やってます(*^^*)
ハマりすぎないように次へ行きます♪
数行でExcelブック起動
シートに値の入力
フォルダに保存
こういう作業は実務でも使えそうです。
楽しく拝見させていただきながら次に進みます。
出来るところまででも動画を聞き直したいと思っています!
文章作成ワークショップ、操作早くなるワークショップも継続してます!
世界が変わってきました(*^^*)
大事だなー。
構文を理解していないと見つけられない
" があるところまでが 文字列になるので注意が必要。
このドリルは繰り返ししよう!
セル2にならないので注意!
↑ここがよく間違える!要チェック!
・&と+では +の演算子が優先される。
”くくられているところまでが文字列となる”
・日付もDimで変数にできる。
マクロがシンプルかつ効果的に作成できる!
(”セル”&変数)が有効!
演算子という言葉を覚えた!
001とマクロで書いていても、セルの設定が標準であれば1となってしまう。
文字として扱いたい場合は、はじめにセルの書式を文字列にしておく。
2、Dimには文字列も格納できることがわかった。
文字列
日付
セルの書式設定について学ぶ!
学ぶゾォ〜!
・セルを選ぶときは、Rang(" セル”)
・複数のセルを選ぶときは、Range("セル”:”セル”)
・ワークシートを選ぶときは、Worksheets("ワークシート名”)
・Dim の設定の仕方
学ぶべきことたくさんあった。
F5 は一気にマクロを実行する。
F9 ブレイクポイントで指定した場所までマクロを実行する。
リセットもできるよ。
マクロをテストするときに有効だね。
2バイトの漢字やひらがなを使うのは NGである。
作業時間がかかってしまう。。。今日も賢くなれました。
変数に設定するためには ”Dim 変数名”にして
”変数名”=”変数にしたい計算”を書くと良い?
参照するセルの数値が変わっても、返す値は変化しない。
ただし、セルを参照させて計算したい場合は、”=セル番号”と入力するべし!
声を聞きながら復唱してセルを間違えずに選択できた!
やったぁ!
割り算で あまりを表す算術が”MOD”
であることを学んだ。
^(べき乗)初めてしった。
色のパターンが表示されません。
エクセルのバージョンは2013です。
なんとかなるのでしょうか?
・セルを選ぶ
・シートを選ぶ
・グラフを選ぶ
・シート(グラフ)をどっちでも選べる
ことを学んだぞ!明日も学びます!
まずは、こびとちゃんと仲良くします!
コビトちゃんの絵がかわいいので基礎編に進むことに決めました。
一通り基礎編が終わったら、自分の今の業務範囲の中で
どこをマクロで解決できるか、精査してみようと思います。
今から楽しみです。
IF Elseif Endif 文のところで、Kiso_04_03ifThen_drill.xls-[daihon0010(コード)]の練習7の問題は、
If文だとおもうのですが、ヒントにIf...Elseif...Elseif...Else...End Ifを使うようになっているのですが、IF...Else...EndIFじゃないのですか?よくわかりません。
誠に申しわけございませんが、
kiso04_03IFThen_drill.xls-[daihon0010(コード)]の練習問題を
していますが、回答はどこに記載しているのかがわかりません。
教えてください。宜しくお願いします。
53才の男性ですが、現在パソコン関連の仕事はしていませんが、
この度、マクロを書けるようになりたくて、
勉強しております。
さて、プログラムを書くとき小文字で書くことを推奨しておられましたが、
(””)の中に入れるセル番地は、小文字でいいのですか?
保険の空白行(改行)ということですね。なるほどです。
空白行を作っておくと、挿入位置も見た目にわかりやすいので良いですね。
迅速なご返信ありがとうございました!
本日、4章終えてきました。
空白行=ハコにお団子を入れるための空間、と理解しました。合っていますか?
dim=ku
の部分はお団子には含まれないのでしょうか?
なんとなく、dim=○○と、○○=△はセットのような感覚でいたので、片割れがお団子の外にいることに違和感を感じました。
お団子に含めても含めなくてもマクロは動くようなので、気持ちの問題でしょうか・・・
Sub renshu1()
Dim hashi
For hashi = 3 To 20
Next
End Sub
と、「For~」と「Next」の間に空白行を作っているように見えるのですが、何か特別な意図がありますか?
このプロジェクトのマクロは無効化されています。
マクロ有効にする方法についてはオンラインヘルプまたは ホストアプリケーションの・・・
インストールの仕方が悪いですか?
最近インストールをしたので、その時の設定が関係あるのでしょうか?
先にお団子を作るやり方で、マクロ作成の順番がわかってきました。ありがとうございます。
For next構文 if文を使う場合、for next 構文が外側、if文が内側に来るという型で覚えて差し支え無いでしょうか?if文が外側に来ることもあるのでしょうか?
また、カテゴリ違いなのですが、
あるパスの特定のフォルダ、ファイルを開くというマクロはどのように書けばよろしいでしょうか?
どうぞよろしくお願い致します。
ところで、
マクロ実行を中断したい場合の「リセット」ですが、ショートカットキーはあるでしょうか?
ネットで調べてみたところ、
CTRL+PAUSE(BREAK)キー という記載が多くありました。
自分の環境で試したところ、
PC1(Windows10+Excel2010) → PAUSE/BREAKキーはあるが、CTRL+PAUSE(BREAK)キーでは中断できず。
PC2(Windows7+Excel2010) → PAUSE/BREAKキー が見当たらない
でした。
いずれも、F8キーを押している最中に試しましたが、
・F8キーでステップ実行中に、途中でやめたいとき、
・F5キーで実行して無限ループしているようなとき、
マクロ実行を強制中断できるショートカットキーがあれば教えてください。
[コンパイルエラー sub又はFunctionが定義されていません]
lnstrを入力した後、自動的に InStrに変換しなかった。何が原因か
ku = InStr(Range("c2").Value, "区") 正
②挿入→ 標準モジュール→ コードウインドーを開くと Option Explicit が表示されていない。
( 動画には Option Explicit が表示されている) Option Explicit の役割は何か
なお、動画の再生時間帯午後9時20分頃です。
Dim gyo
gyo = 6
Range("D6:F" & gyo & "6").Value = 6
End Sub
'Sub KoubunDrill06()の参考
Sub KoubunDrill066()
Range("D6:F66").Value = 6
End Sub
質問 何故同じ結果になるのですか
("D6:F" & gyo & "6").=("D6:F66").
("D6:F" & gyo & "6").の解説をお願いします。
動画にある標準モジュールというVBAProjectの下?にあるようなものが見当たりません。どのようにすれば表示されるのでしょうか?
エクセル2013です。
ご教授頂ければ幸いです。
下記のようなソースで、B列のみでなく、D列とE列にも罫線引きたいです。
「Range("B" & gyo).Range("D" & gyo).Range("E" & gyo).Borders.LineStyle = xlContinuous」
と記載したらなんだか変な場所に罫線が引かれてしまいました。。。
構文の読み方は自分が解りやすいように言い換えたりした方が楽ですね〜
for next 構文で 行が可変する場合、固定数字を入れるのではなく、( to. 11 と数字を入力するのではなく)いちいちマクロを修正することなく、対応できる良い方法がありますか?
プログラミングやマクロのことはまだ全然わからないですが、仕事への取組み方そのものに通じる大事な考え方だなと思いました
感謝です
何か、悪い設定をした可能性がありますが、判りません。アドバイス、お願いします。
学生時代、プログラムを全部書いてからテストをしていたので、どこでエラーが出ているのか分からず、苦労した思い出があります。
「当時、この思考を知っていれば…」と思わずにいられません。
良いことを教えていただき、感謝しております。
何となく半角は1/2文字かなという感覚もあり、最初迷いました。
IFが2つ入る構文ですが、作り方は
①おだんごを作る(”合格です”が指定列に表示されるのを確認する)
②「80点以上なら合格、それ以外は不合格」のIF文箱をつくり、①をそれぞれに入れてから加工する
③「もし男性なら」のIF文箱を作り、②をthen以下とelse以下に入れてから加工する
でいいですよね。
最初、「もし男性なら」から作ろうとすると行き詰ったので、こちらでやりました。
短時間集中で、完全マスターをめざします!
gooska
一度エラーが出たので調べてみたら、箱の中にカットコピーを入れるとき、
ifのラストEnd Ifを一緒に移動しておらず、nextの下に残っていたためでした。
こうなった原因の一つが、End Ifの前に空白行があったためでした。
ともあれ、End IfがNextよりも下に来てしまうと、どんなエラーになるか体験できて
良かったと思っています。
gooska
codeとは何を入力すればよいでしょうか。そしてこの目的はなんですか?
おだんご作りから始めて、1行テストで忠実にハナコのステップを進めると、確実に完成することを確認できました。
rangeのセル範囲指定にカウント変数をあてはめるところで何回か赤が出ましたが、
数字とそれ以外を切り分けてから変数にすると、うまくいきますね!
変数への加工にショートカットのコピペを使うことにも慣れてきました。
まだまだ練習が足りないですけれど、
こんなに簡単にIF構文が完成することに勇気づけられています。
gooska
エラーをすべてなくすまでとても時間がかかっていました。
ところがハナコのステップでやれば、何も問題なく完成できて驚いています。
おだんご部分をまとめて字下げしてからカットコピーなども、先生の説明がいつも一貫しているので覚えやすいです。
この調子で他の構文もマスターしたいです。
gooska
独学時の印象から、構文の説明はおだんご作りよりもっと難しいのだろうと予想していたのに
丸暗記と、箱の書き方練習から入ったのでびっくりしました。
ところがこのやり方だと、わかりにくかったForNext構文がスラスラできたので感動しています。
構文まできっちりマスターして、転職に活かしたいと思っています。
派遣の仕事を探しているので、「VBAの基本までは分かります、簡単なマクロなら作れます」
とアピールができるところまで、どうしても行きたいのです!
資金的事情で、「今」はとりあえず基礎編までしか受講できないのですが
ここまでしっかりマスターしたら、上記アピールできるようになりますか?
続きも真剣にがんばります。gooska
gooska
今まで構文の意味は理解していても、構造がうろ覚えだったので、書くたびに正確な構文を
参考書に戻って確認しなければなりませんでした。丸暗記大事ですね。
タイプ練習ソフトで我流を直しつつ、ForNextも手が覚えてしまうまで繰り返したいと思います。
gooska
おだんごを作る小人ちゃん可愛いので、印象に残りやすいです。
複数行まとめてtab、shift+tabでインデントを戻せることも初めて知りました。
gooska
今回の動画を見る前に自分で取り組んだ結果報告です。
導入編で既に同じ処理をする関数をご紹介いただいていたので、切り分けは自力でできました。
以下のステップで進みました。
①1行目のデータを切り分ける3つのマクロを作り、それぞれが正常に動いた
②for next文を入れて、3つのマクロをつなげたマクロが正常に動いた
③ラスト行が固定しない場合を想定し、(参考書で調べてきた)最終行を調べて取得する言葉を入れてみた。
↓
ラスト行までデータは入りましたが、以下のエラーが出て正常終了しませんでした。
「実行時エラー5 プロシージャの呼び出し、または引数の不正です」
以下にコードを載せます。
黄色行になるのはラストから5行目
Range("J" & i).Value = Left(kozoData, kai - 1)
のところです。
もしかしたら、この先の動画で解決するのかもしれませんが、
現状できるところまで取り組んだということで、添削をお願いします。
この先の動画はまだ見ていない段階です。
gooska
いざ自力で書こうとしてみればまっさきにこの二つに遭遇するので、実体験からも納得のいくお話でした。
直接文法上のエラーがなく、また命令としての意味をなしていて実行エラーを起こさない正常マクロであっても、
小人ちゃんがこちらの想定外の仕事をしたうえ、満足げにおうちに帰ってしまったことがあります(汗
(ex.別シートからコピペしてほしかったのに元シートのデータが消えたりとか)
こういうのはなんというエラーなんでしょうか(笑)
他にいろいろな記述が可能な場合、これこれのようにも書けるが、これこれだと間違いという知識を広げることも大事だなと感じました。
これでも動きますけれど、ここではかっこをつける必要ないんですね。
つまり変数には文字列も格納できるが、変数自体は記号扱いだという認識で、とりあえずはいいでしょうか。
””で囲まれたとたん、小人ちゃんはその領域をDimの治外法権として、そこに変数があるかどうか探しに行かなくなると。
今回はそんな感じに解釈しました。
少し話がずれますが、コードウィンドウで小川先生の画面は、
用語の種類によって、文字が赤かったり黒かったり色分け表示になっています。
今回のjyusyoも、そのままだと赤く、””で囲まれると黒字になっていて、文法上の違いがよく分かります。
私のウィンドウでは、コメントは緑なのですが、他は全部黒字です。
これはどこかの画面で指定できるのでしょうか?
文章中に、うっかり記号どおりの”code” を使ってしまったので、マクロからではなく、
上の文章からコード扱いとして認識されてしまいました。
HTMLのタグのようなものなんですね。
間違えたけれど意味が理解できました。
以下の投稿では、コードのハイライト表示はされません。
私も、プログラムを載せる練習をしてみます。
[code]の理解が正しいかどうか試させてください。
前回間違った1行おき表示のマクロです。
[code]
Sub Rensyu2 ()
Dim zeigaku
Dim i
zeigaku = Range("B1").Value / 100
For i = 4 To 9
Range("C" & i).Value = Range("B" & i) * (1 + zeigaku)
Next i
End Sub
[/code]
動画を見てからもう一度全部ドリルを解き直し、ほぼ正解したので、
独学で学んでいたFor Nextにも挑戦してみました。
構文エラーは出なかったものの、1行おきに数字が表示されてしまいました。
なぜなのか考えてみたら・・・・Do While Loopと混同していて、Next i の前に、更に i = i + 1 を
書いてしまったので、一度に2行進むことになってしまったと判明しました。
どこまで理解できていたか、どこで間違いやすいかの確認になりましたし
おまけで交互表示という別の使い道も発見(笑)
もっとドリルのような練習を積むことが大事だと思いました。
home shift ↓で1行選択ができることや、()は続けて打たないほうがいいことなど、
ちょっとしたことも入力ミス回避や作業の効率アップに役立ちました。
とてもわかりやすくて印象に残りました。
私はOSがwin10、Excel2016です。操作的には2013とあまり変わらないようです。
VBE上でのF1ヘルプは、googlechromeに新しくタブができ、そこにoffice.com画面が挿入されます。
つまり独立したウィンドウにならず、右下のウィンドウがないので、オフラインにはできないような印象です。
VBA以外の通常ヘルプは、オフラインで専用ウィンドウが開きますから、オフラインがないのかも・・・・?
とりあえず、その都度ヘルプ機能を有効活用してほしいという趣旨の講義と理解し先に進みます。
後日、まとめ記事がどこかに掲載される機会をお待ちします。
(手元のzipファイルからは、pdf<resumeの下にありました)
最初フォルダが分からずに、あちこち開けまくって探しました。自己解決済ですがご報告します。
マクロやVBAでツール作成や改修など、高時給の求人をよく目にして、興味をもったのがきっかけです。
退職してからひと月あまり参考書などで独学したのち、この講座にたどりつきました。
現在は職場から離れているため、自分で想定した簡単な自動化の課題に取り組んだりしましたが
わからないことが多すぎて、参考書の構文から少しも応用することができず、
単純なエラーから抜け出すのに何日もかかってしまいました。
実務経験がないと難しいかもしれませんが、転職に活かせるくらいVBAができるようになりたいです!
集中して頑張りますのでよろしくお願いします。
Sub ForNextSample111()
Dim gyo
For gyo = 2 To 11
Range("A" & gyo ).Value = 1
Range("B" & gyo ).Value = 2
Range("C" & gyo ).Value = 3
Next
End Sub
の、セルの値として指定している1、2、3の部分に、変数gyoとあわせて引数が変化するワークシート関数を入れられないでしょうか。
たとえば、Range("A" & gyo ).Value = Range("=SUM("A" & gyo)" )
とか。上記の書き方で試してみようとしたのですが、構文エラーのようで、赤くなってしまいます。
正しい書き方まで教えていただけましたらありがたいです。
excel2010です。
たとえばvbRedにカーソルをあててF1を押して、『このコンピュータ上のコンテンツ>開発者用リファレンス』を選択しても、次にヘルプを参照したときには別の項目(「Office.comのコンテンツ>開発者用リファレンス」)が選択されていて、F1クリック後もう一度、『このコンピュータ上のコンテンツ>開発者用リファレンス』を選択し直さないと目的のヘルプを参照できません。
F1をクリックするだけで一発で参照できるようにするにはどうしたら良いでしょうか?
私はいままではl関数ネストを使ってマンションリストのような住所の分割や、条件によって表示させる内容を変えたりしていました。
関数を使うより、VBAで記述するメリットはあるのでしょうか?
すごくわかりやすいレッスンで毎回楽しんでいます!
F1でヘルプ!
私も2010でいちいち設定しないとできませんでしたが、
謎の作業(笑)で一発で表示されるようになりました(^^♪
ヘルプ機能たくさん活用していきます!
「この動画は見たのになぜ覚えていないんだろう」とショックでした (゚Д゚;)
動画を見て理解するのと練習して身につくのとは違うんんですね。
また、[Ctrl]+[Home]は「セルA1に移動」らしいので、まずエクセル操作のショートカットを知らないことに問題があると思いました。
こうした操作が急にできるようになるとは思えませんが、あせらず頑張ろうと思います。
右上に出てくるショートカットキーのF8(1行1行実行)とF5(実行)は分かりました。
Alt+Tabは導入編を学習した時のメモに「プログラムが出る」とありました。
Alt+F11、Ctrl+Home、Ctrl+End、Ctrl+0、Ctrl+;、Ctrl+Z、Shift+End、Shift+Home、Shift+↓が分からなかったです。
ただ、動画の右上に時々出てくるショートカットキーが何の動作なのか分からず気になりました。
既に習得しているべきものでしょうか?
2003や2007も学習する必要があるのかと思いましたが、まだ2010や2013は普及が低いのでしょうか?
いずれ、スキルを客観的に示すため、資格試験を受けるかもと思うので、やはり2003、2007も学習したほうが良いでしょうか?
私はWindows7でexcel2013を使用しています。
ヘルプの件ですが、excel2013で開こうとしたところ「組織のポリシーによりこの操作を完了できません。ヘルプ デスクに問い合わせてください」というメッセージが出てMicrosoftのディベロッパーセンターのヘルプのホームページに飛べませんでした。
調べてみたところ、どうやらWindows7と8で、Outolookやexcelでハイパーリンクが機能しないエラー?が出る現象が確認されているようです。
Microsoft サポート技術情報の「Outlook でハイパーリンクが機能しない」のページの「簡易修正ツールで解決する」の手順に従って処理を行ったところ、ちゃんとヘルプに飛べるようになりました。(参考URL : http://support.microsoft.com/kb/310049/ja)
もし、私と同じ現象に遭遇する方がいましたら参考になればと思い、コメントしました。
蛇足でしたらすみません。失礼いたします。
Workbooks.Open Filename:="D:\tsuika\sub\" & Workbooks("main.xls").Worksheets("Sheet1").Range("B5").Value
のように指定していましたが、
Workbooks.Open Filename:="D:\tsuika\sub\" & Range("B5").Value
でも開けると思い、実際に試してみたところ開けました。
仕事を離れて1年ほど経過し、忘却の彼方へ飛び去ろうとするVBAの知識を留めるべく復習を開始しております。
1年前、For Next を学んだ翌日に実務で作成した第1号のVBAが下記のコードなのですが、
excelが得意でない方の作った表で、途中に余計なものが入りまくりソートすらままならなかった1日がかりのコピペ作業がたった数行で「あっ」という間に終わってしまい、めちゃテンションがあがって感動したのを思い出しました。誰でも楽に理解できるハナコのステップを考案した小川先生ってやっぱ天才かもです。
Dim gyo
For gyo = 1 To 510
If Range("ay" & gyo) = "実績(+見通し)" Then '項目名
Range("az" & gyo - 1 & ":be" & gyo - 1).Value = Range("az" & gyo & ":be" & gyo).Value '上期コピペ
Range("az" & gyo - 1 & ":be" & gyo - 1).Interior.Color = vbCyan '上期色付け
Range("bg" & gyo - 1 & ":bl" & gyo - 1).Value = Range("bg" & gyo & ":bl" & gyo).Value '下期コピペ
Range("bg" & gyo - 1 & ":bl" & gyo - 1).Interior.Color = vbCyan '下期色付け
End If
Next
ところで、条件文の方を2つにしたい場合、どういったコードを書けばよいのでしょうか。動画の中の例でいうと、男性でかつ合格した場合に、コメントを”やったね”とし、男性で不合格の場合には”次にがんばろう”、女性で合格した場合には”おめでとうございます”、女性で不合格の場合には”あとちょっとでしたね”などというようなケースを想定しています。
この動画6:30あたりにFor Next構文を作るところがありますが、nextを打ち込んでエンターキーで確定した後、私の場合、その下のおだんご(If Len・・・)が一行下にずれます。ですが、動画の動きは、nextを打ち込んでnがNに代わった瞬間、カーソルは左下に動いて、その下のお団子はずれません。
どのように試しても、動画と同じ動きができません。どのようなキー操作をすると動画と同じ動きになるのですか。
今回だけでなく、また、今回のパターンだけでなく、私の場合と微妙に違う動画の動きについて感じていた素朴な疑問です。
この動画の解説文に、「ハナコのステップ」で作ったIf文を、For Next構文で挟み込んでいます。
このように、プログラムを書くときには、一番内側のものから書いていくのが初心者向けです。
(このステップを完全にマスターすると、外側からでもどこからでも書けるようになります)
とあります。( )内のコメントですが、完全にマスターした人は、マクロを書く基本である小さいものから、大きなものへのステップを外して書くことがある
という意味にもとれますが、どうなのでしょうか。
動画の閲覧期間が終了すると、小川先生とやり取りしたコメントも見れなくなるのでしょうか。
お世話になっております。
今回の動画にあるような実行時エラーと構文エラー、どちらも書き方が正しくないわけですが、その違いはどこなのか。マクロではどう判断してエラーを出すのか。構文エラーは、構文が正しくないのだなとは理解できますが、実行時エラーとの境界が判断つきません。ご教授のほどよろしくお願いいたします。
お世話になっております。現在基礎編復習モードに入っています。
マクロの質問ではありませんが、小川様が動画中に使っている赤字でアンダーライン引いたり、字を書いたり、四角く囲ったりするのは、特別なソフトを使っているのですか。
それとも、もともとオフィスかウインドウズに入っている機能なのでしょうか。パワーポイント以外のプレゼン、たとえばこのセミナーのようにエクセルの画面を見せながら
解説するプレゼンにも非常に有効だと思いまして、使ってみたいと思います。
お世話になっております。
動画の閲覧期間が終了すると、自分の残した学習メモも見れなくなってしまうのでしょうか。
お世話になります。
基本的な質問ですが、マクロ実行後に、エクセル画面上で元に戻す(例えばCtrl+Z)ことはできないのでしょうか。元に戻す矢印アイコンも無効になっているので無理だとは思いますが
設定で変えることもできないのでしょうか。
ネットで、調べるとDir関数が理解出来ていなければフォルダ内のファイル一覧を作成してそれを呼び出せば良いと書いてあってのですがそのファイル一覧は、書き出せたのですがそれを使っての次の作業が分かりません。
いちよう、サブファイルの特定シートの特定セルのコピーまで出来ましたが貼り付けを小人ちゃんが放棄します…
そして、今週は2つのマクロを仕上げました!ものすごく簡単なマクロなのに一瞬にして作業が終わってしまうことに感動しています。
(でも、マクロを書いていたら「暇でしょ?これやって。」(←いつもこんな感じです笑)と本業の仕事が舞い込んでいました(笑))
一つは、全部で11シートある特定セルに書かれた最大値と最小値を一つのシートにまとめるマクロです。
その最大値と最小値から絶対値での大きい方を求めてその求めた数値を別ファイルに書きこむマクロです。
↑講座内容から、少し離れていたのでネット検索で完成させました。
ほんとに、なんで今までマクロでやることを考えなかったのか…不思議でなりません。
CADでは、マクロで作業を楽にはしていましたがエクセルはエクセルのマクロ得意な社員がいるので私はそっちには手は出さない予定
だったのですが自分が業務で必要なマクロは自分にしかその必要性が分からないんだなと改めて思いました。
これからも、少しづつ学んでいきたいと思います。宜しくお願いします。
動画のように、visual basic画面と 作業が行われるエクセルを同時に開いて作業するには、
どのようにしたら良いのでしょうか。
VB画面の左上のエクセルアイコンを押すと表示されたエクセルのセルがアクティブになり、
VB画面にカーソル移すとエクセルシート画面が消えてしまいます。
どうぞよろしくお願いいたします。
Dim Gyoと言う変数で2 To 11までFor next構文を作成されていたので、A to Zまでも可能なのかと思い、
アルファベットに置き換えて試してみましたがエラーが起こりました。
アルファベットでも可能なのでしょうか?
(後の動画でご説明される内容であればすみません)
大変お世話になっております。
基礎講座1-2の最後のワークブックのところを自習しようとしましたが、エクセルファイルを新規で開いてF8で実行すると
「実行時エラー'1004'」と出て、ファイルの名前が変更されたか削除された可能性があります。とでて、うまくいきません。
'解説の事前準備として、エクセルファイルを開きます
とありますが、どのファイルを開けばいいのでしょうか。それとも根本的に、どこか問題があるのでしょうか。
よろしくお願いいたします。
群馬県 関口
ちなみに、自己採点用のマクロを作ってみました。
半月で、やっと第一章が見終わりました。
ドリルのモジュールdaihon0010の中の[8]で質問があります。
税率から税込総額を計算する中で変数に1を足しますが、この足し算は変数の前がいいのか、それとも変数の後でもいいのか、
どちらでも計算結果は同じなのですが、数学的(算数的)な考えだと変数の前のほうが無難なのでしょうか?
マクロとは全く関係のない質問で申し訳ありません。
日付の計算もできますか?
たとえば 2015/7/12 17:00 の10時間前は 2015/7/12 7:00になる。
単純に-10hで値が出ますか?
商¥の算術演算子につき、=17¥3と入力しても、エラーが出てしまいます。
Helpのコメントも特に商についての説明はなく解決出来ません。
もし、過去に似たような事例があれば、解決策をご教示頂きたく。
余談ですが余剰Modについては、=17Mod3といった具合ではエラーとなり、=Mod()
のようにFunctionとして入力すると問題なく余剰機能が使用出来ました。
17/3の余りなら.666ではないのでしょうか?
なぜ2なのでしょうか。
②また、たくさんあるデータの中から 例えば住所でいうと 渋谷区で小田急線の(2つ以上の条件)の人のデータを横にすべて範囲指定するとかできますか?
後でマクロを書き換える時に思い出す事が出来て便利である。
追伸
特打ちを練習しだしてからキーを押す指が変わりました、今は慣れなので遅いですが指があまり移動しなくなりましたのでいい感じです。毎日特打ちだけは練習しています。
これからの勉強が楽しみになりました。
お世話になります。陳と申します。
先日このコメント欄を通じてテキストがダウンロードデータに含まれていない件でお問い合わせをさせていただきました。
その後「システムを通じてメールをしたので確認してください」と小川さんからのメールをいただいたのですが結局こちらには届いていません。
そのご連絡を差し上げるもなんらご連絡がありません。何らかの不具合が生じているのか私からのメールが届いていないのか・・・・・
恐れ入りますが再度よろしくご確認いただけないでしょうか?
よろしきお願いいたします。
陳美有
または郵送などで送付していただけるのでしょうか?
ご確認よろしくお願いします。
○VisualBasicEditor初中級操作ガイドテキスト(113ページ)
○ExcelマクロVBA 基礎編テキスト(72ページ)
kiso01-daihon0031のサンプルコード下から3行目がよくわかりません。特にこの部分 "_ * #,##0.0_ ;_ * -#,##0.0_ ;_ * ""-""?_ ;_ @_ "の意味について説明お願いします。数値の全体の見せ方は良く利用できそうです。もっと簡単にできる表示する方法がありませんでしょうか。
Sub CommentSample()
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'このマクロの全体の流れ: '
' [1] 名前を氏名で分割して、 C 列、 D 列に書き込む '
' [2] 一般社員だったら、 E 列の見せ方を変える '
' [3] 各行の合計を計算して M 列に書き込む '
' [4] 数値全体の見せ方を変える '
' '
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim c As Long 'ForNext構文で使う、カウンター用の変数
Dim cMx As Long 'ForNext構文のカウンター最大値を決定する変数
Dim st As String '氏名を取ってきて格納する変数
Dim i As Integer '氏名の中で半角スペースを見つけ、変数 i に格納する
cMx = Range("A65536").End(xlUp).Row '←ここ、ちゃんと書けている自信ない (--;
For c = 4 To cMx
st = Range("B" & c).Value
i = InStr(st, " ") '苗字と名前の間が全角スペースのときについてはまだ対応していないので注意!
Range("B" & c).Offset(, 1).Value = Left(st, i - 1)
Range("B" & c).Offset(, 2).Value = Mid(st, i + 1)
Next
For c = 4 To cMx
If Range("E" & c).Value = "一般社員" Then 'もしも、E列が一般社員だったら
Range("E" & c).Font.Color = vbRed '←あとで、別の色にすること!
Range("E" & c).Font.Bold = True
End If
Next
'↓作りかけたけど、ちゃんと動かなかったのであとまわし。
' For c = 4 To cMx
' Range("M" & c).Value = Range("G" & c).Value Range("H" & c).Value + Range("I" & c).Value + Range("J" & c).Value + Range("K" & c).Value + Range("L" & c).Value
' Next
For c = 4 To cMx
Range("M" & c).Value = WorksheetFunction.Sum(Range("G" & c & ":L" & c))
Next
'数値全体の見せ方を変える。(ネットからパクってきた。ネタ元: http://www.exvba.com/hoge/... )
Range("G4:M" & cMx).NumberFormatLocal = "_ * #,##0.0_ ;_ * -#,##0.0_ ;_ * ""-""?_ ;_ @_ "
End Sub
オンライン講座のメリットを活かし、同じ動画を何度か繰り返し観て、マクロのパターンを体で覚えました。
ネットでマクロを上からコピーしてではなく、小さいモノから作り始め、段々拡張していくというやり方だったので、
一つ一つ意味を理解しながら、マクロを書くことができました。
ありがとうございます!!
検索の▼を開くと開発者用リファレンスが2つあり、1つはOffice.comのコンテンツのくくりの一番下に、もう一つはこのコンピューター上のコンテンツのくくりの一番下にあります。
毎回デフォルトではoffice.comのコンテンツにある開発者リファレンスにチェックが入っており、その状態だとヘルプ内容が表示されません。
もう一つのほうの開発者リファレンスにチェックを入れると見れますが、毎回チェックしないといけない状態です。
できるだけ1発で表示されるようにしたいのですが、何か方法はありますか?
EXCEL画面とコードウインドウを同時にマクロをF8で実施している祭に、EXEL画面のカーソルをコードウインドウにキーボード操作で移すことができるのでしょうか。
どうしてもマウスを使用してしまいます。
が、マインドマップを見たり、実際に書いてみると思い出します。
ここまでの内容はついていけています。引き続き頑張ります。
マクロをF8で実行していて途中でやめる場合、キーボードで操作する方法をお願いします。
マウスでリセットをクリックしていますが、マウスを使わないほうがいいと思います。リセットの横に(R)とありますが、キーボードで何かショートカットキーを押すのでしょうか。
発展編は受講します。少し高額ですが高くないと思わせるスキルに期待しています。
(C)を(A),(B)にコピーして貼り付ける際、動画の場合は、if とelseとend ifの間にスペースを作成してちょうどうまく貼り付けています。
しかし、私が貼り付けるとelse とend iの下に一行ができます。貼り付ける際に何かショートカットキーを押すのでしょうか。
Sub zyuusyo()
Dim mae
Dim kouzou
kouzou = Range("D2").Value(C)
mae = InStr(kouzou, "/")
If kouzou = "RC" Then
(A)
Else
(B)
End If
End Sub
これで、自分で書くときも、絶対に頭の中でこびとちゃんが出てくると思います。
そして余談ですがこびとちゃんが両利きだということにこの動画で気づきました…さすがこびとちゃん!
鉄筋/2F部分/6階建
を 「鉄筋」「2F部分」「6階建」 と セル毎に分ける考え方として、
①instr関数で 一番目 / の数値を出す
②instr関数で 二番目 / の数値を出す
③Len関数で 文字列全体 の数値を出す
③Left関数で、①の値を利用し、「鉄筋」を出す
④Mid関数で、①、②の値を利用し、「2F部分」を出す
⑤right関数で、②,③の値を利用し、「6階建」を出す
以上のような流れで合っていますでしょうか?(もしくはこの解答は、どこかにあるのでしょうか)
いくつかの表示を並べてみると非常にわかりやすかったです。
内容に関しても Ctrl+Jがチェック機能にも使えそうでしたので、見直すときはショートカットの内容に関して注目したいと思います。
ありがとうございます。
引数の意味がよくわかりません。英語でParameterとありました。ウェキペディアで調べましたが、よく飲み込めません(´□`)
この考え方は身についていなかったです。とても勉強になりました。
ところで、Rang("A1").Value=3 と書くときにA1を" ”でくくるのはなぜですか?
変な質問ですみません・・・。前から気になっていたので。
入力ミスもないし、早いし、素敵です!!
sub renshu1()
dim hashi
for hashi = 3 to 20
next
End su
と、倣って入力しておりますが、
動画では、「 dim hashi 」を入力後、改行した時は、
自動で、タブが入った状態で改行されているように、見受けられます。
EmEditorを利用していますが、これは、設定によって、できるものなのでしょうか?
それとも、高速で、 「 Enter → Tab 」をしているのでしょうか。
これまでの動画で見落としていたら、すみませんが、ご教示いただければと
思います。
これは、何をするものなのでしょうか。
グーグル先生では、該当しそうなものが見当たりませんでしたので、
よろしければ、教えていただければと思います。
表示されるとかっこいいですね!
Ctrl+Jは、すばらしいですね!!
いつも楽しくさせてもらっています。
『 単語+カーソル → F1 』 → Tab×2 → 検索 → ↓ → Enter
のコンボまで試せたので、これからのヘルプが快適にいけそうです!!
コメント・質問等(お気軽にどうぞ)の下に
「プログラムのソースは で囲っていただけると、以下のような表示になります。」
とありますが、これはサブプロシージャの行に番号が付与されるということでしょうか。
で囲うとありますが、やり方がわかりませんので教えてください。
Excel2007を使用しています。F1を押してもヘルプが出てきません。検索の開発用リファレンスにチェックを入れると表示されます。しかし、別のブックでは表示されません。その都度開発用リファレンスのチェックをする必要があるのでしょうか。
マクロを書くとき小文字で書くことのメリットがよく解りました。
以下3点質問させてください。
①セルの文字も小文字で書いていますが(例 ”A1"ではなく”a1”としています)、これでも後々問題にならないでしょうか。
今のところマクロは問題なく実行できています。
② 例 range("a1").value=5 とするとき、("a1")を書くのに時間がかかります。何かコツがあれば教えてください。
( ” まではshift押したまま8、2の順で書けますが、a1を書いた後 またshift押しながら2、9を押して " ) を記入するのに
手元を見ないと必ず間違えてしまいます。特訓あるのみでしょうか。①の質問でセルの文字が大文字でないと都合が悪くなる場合、
shiftで大文字変換も入れないといけないので・・・
③マクロを書いている途中で ctrl+J で自動表示を利用しようとしましたが、表示がでなかったため、最後まで打ち込みました。
表示されないこともあるのでしょうか。以下のようなものを書きました。
Sub serunoiro()
Worksheets("sheet1").Range("b1").Interior.Color = vbRed
End Sub
表示されなかったのは.Interior.Colorです。最初の . で自動表示がなく、 Interior.Colorにつきましてはintでもinteでもそれ以降
一文字ずつ加えても最後まで表示がありませんでした。 Worksheets("sheet1")ではなくrange("a1").とすると自動表示は出ました。
特に設定はいじっていません(自動表示にはチェックはあります)。
以上、宜しくお願いいたします。
小川先生は、基礎講座1-6の掲示板に手順通りに仕事を進める事を強調していました。
恥ずかしながら私の場合、ちゃんと理解をせずに仕事を進め、ミスが発覚する事が多くあります。
その事を肝に銘じ、1文ずつ読んで作業した結果、先生の説明を理解する事ができました。
有難うございました。引き続き、宜しくお願い致します。
関数式を見た所、記述されないのですね。シート上はシンプルでいいですね。
しかし、VBA学習は、関数式を見ながらするものと思っておりました。
今後講義を進める中、どの様に習得できるのか少々不安はあるものの楽しみであります。
ダイアログは以下の通りです。
------------------------------------
'C:¥Users¥¥Desktop¥Book1.xls'が見つかりません。ファイル名およびファイルの
保存場所が正しいかどうかを確認してください。
最近使用したファイルの一覧からファイルを開こうとしている場合は、そのファイルの名前が
変更されていないこと、移動または削除されていないことを確認してください。
--------------------------------------
以上です。
お手数懸けますが、ご回答の程、宜しくお願い致します。
また、自分で書いたマクロは自動的に保存されるのでしょうか(書いた後エクセルまたはVBAで上書きする必要があるのでしょうか)。
動画を参考に自分でマクロを書いた後、エクセルを保存せずに閉じましたが、再度エクセルを開きVBAを立ち上げると保存されていた場合と消えなくなった場合がありました。
①か②のどちらで実施したか覚えておらず、すみません。
さらに、エクセルかVBAを閉じるときにでエクスポートについて保存するかしないか聞いて来たので、いいえを選択したら、今度は個人用で保存するか否か聞いてくる場合やそうでない場合をいくつか経験しました。どういうときにこの質問が来て、個人の保存・・・質問については はい・いいえのどちらを選択すればよいのでしょうか。
個人の保存の方は1回保存を実施しましたが、おそらくそれをしたことで自分で書いたマクロがVBAProject(PERSONAL.XLSB)内のThis Workbookに保存されていました(標準モジュールにはこれが保存されていませんでした)。
VBAProject(PERSONAL.XLSB)とVBAProject(今開いているファイル名)は何が違うのかまだよくわかりませんので、差支えなければご指導お願いいたします。
プロパティ用語で読み方のわからないのがたくさん出てきます。
まず、CurrentRegion 多分 カレントビジョンだと思いますが
次に、表の終端セルを選択する xlDown あるいは xlToright 何と読むんでしょうか? エクセルダウン?
ご指導願います。
有難う御座いました。
kiso_shiryou.zipはデスクトップに置いておりますが、 対処法を教えて頂きたくお願い致します。
試してみた結果ですが、Len関数は、「半角・全角どちらでも1文字としてカウントする。スペースもカウントされる」と理解してよろしいでしょうか?
ありがとうございました。
動画では、「F5_F8_F9_01」と「F5_F8_F9_02」と「F5_F8_F9_03」の3つのSubプロシージャがあると説明されていますが、
手元のファイルでは「F5_F8_F9_01」はあるのですが、「F5_F8_F9_02」は書きかけのものがあり、「F5_F8_F9_03」は存在すら
しません。
「F5_F8_F9_02」と「F5_F8_F9_03」は、「F5_F8_F9_01」のA列がそれぞれB列とC列に変わり、「2」の位置が「真ん中」と
「下の方」に変更されているだけでしょうか?
細かいことのようですが、気になってしまいました。ご回答をお願いいたします。
この動画に限ったことではないのですが、ショートカットキーについて質問です。
行全体(タブを含む)を選択する場合は、カーソルを先頭に合わせてからShift+↓キーでいいのでしょうか?
また、書き始めのタブの部分は含まず文字の部分のみを選択する場合は、
行頭文字に合わせてShift+Endキー、または、行末文字に合わせてShift+Homeキーとなるのでしょうか?
行頭でも行末でもない、文字の途中にカーソルがある場合は、行全体を選択することはできないのでしょうか?
動画では小川先生の操作が早くて分からなかったので、質問させていただきました。
お手数をおかけしますが、ご回答をお願いいたします。
Dim gyo
For gyo = 2 To 11
If Range("e" & gyo).Value = "女性" Then
Range("i" & gyo) = "女性です"
Range("j" & gyo) = "ステキですね"
Range("a"&gyo&":j"&gyo).Font.Color = vbRed
とやると
Range("a"&gyo&":j"&gyo).Font.Color = vbRed
の部分が赤くなって怒られます。
2つめの&の前に空白を入れ、
Range("a"&gyo &":j"&gyo).Font.Color = vbRed
カーソル移動するとOKしてくれます。
上2つは入力するときに&の前に空白を
Range("i"&gyo) = "女性です"
Range("j"&gyo) = "ステキですね"
入れなくてもOKしてくれます。
たしか、エクセルマクロは空白とかをたくさん入れても、逆に入れなくても小人ちゃんが認識してくれる、ということだったような…
for next構文のtoの前後にも空白を入れないと認識してくれなかったり、空白が必要なものと不要なものの違いがよくわかりません。
文字色が&もToも黒、と言うことが関係ありそうなのですが、正解はなんですか?
動画の最後にあるWorkbookを指定する時のコードについて質問です。
モジュール「daihon0001」にある Sub AnotherWorkbookSheetRange()についてです。
ところどころに[*1] [1] [2] [*2]とコメントがあるのですが、この部分はそれぞれどこかに解説が
書かれているのでしょうか?
お手数をおかけしますが、ご回答をお願いいたします。
Range("f2").Value = Left(Range("c2"), InStr(Range("c2"), "区"))
なんてしました。
次に先生の作ったもの
Range("f2").Value = Left(Range("c2").Value, ku)
これを見て思いました。最初自分で作った式の右辺
InStr(Range("c2"), "区")を
ku に変えればいいなと。
そうすると先生の式の右辺のValueは無くてもいいのでは?
実際、Valueを省いても動いて欲しいように動きました。
それでもValueを入れておくと後々役に立つとかで、入れたほうがいいのでしょうか?
ここまで動画を見ました。明日以降ドリルを自分でやってみます。よろしくお願いします。おやすみなさい。
はい、ありがとうございます。ひとつひとつ、もっともな解説(見解)だと受け止めます。
私は思い込みが大きいところが多分にあると思います。それが他人への伝達、他人との共同作業を不自由にさせていたり・・・
まあ、ぼちぼちがんばります。
「抜ける」というのは、洗濯で色落ちする、とかの連想で色が落ちる・薄くなる・抜ける、と表現してしまいました。
ではまた。
それはエクセルの仕様なのでしょうが、どういう意図があるのでしょうか。自分の仮定は、色をつける目的は選択しやすくすることで、選択したら、目的はシート内の操作になるのだから、ぴかぴか色ついてる必要ない、ということかなあ、です。
文字列も短かぃ、進んだ気になる!
が、4分でストップ。モジュールのそれぞれを動かすと、右がそれぞれ変わっていくはずなのに、一向に’小人ちゃんが何をしているか観察してみましょう!で動きません。
どこかの設定がおかしいのだと思います。ご指導お願いします。
F1でHELP、便利ですね。
自分のひっかかり解消になりました!(^^)!
コピー貼り付けで少し手直し、ちょこちょこテストして完成に向かう、の感覚、についてです。それはこれから自分の書きたいことが前の行と似ている、ということを事前に見通しておくことが必要、ということがいえるのでしょうか。
よろしくお願いします。
単なるコピペ作業なのですが手作業でやると順調に行っても、丸1日以上かかる上にミスが起こりがちで何度も見直さなければならないのですが、マクロ作成に1時間弱、実行10秒で終わっちゃいました。ありがとうございます。
初学の方だと、あまりに簡単で拍子抜けするかもしれませんが、これまで苦労して来た身としては、ほんと奇跡です。
ここまで分かりやすく説明できるのは小川先生だけだと思います。これからも、どうぞ宜しくお願い致します。
分かりやすい解説ありがとうございます。
ただこのリスト作成で最後の2列、サンプルを見ながら何度もトライしたのですがうまくいきませんでした。
この正解と、あとfindを使った構文を教えていただけると幸いです。
プログラムも、”細切れ””段階的”に書いていくことが大切なのではないか?と、感じました。
逆に考えれば、VBAを正しく学んでいけば、人に何かを説明する力も養われるのではないかと感じました。
講座の資料についてのお問い合わせです。
「基礎講座第1章・色の指定」の講義の中で、
「Visual Basic Editor 初中級操作ガイド(改訂第9版)」の92ページを参照されているのですが、
ダウンロードした基礎編の資料の中には、それらしきファイルが見当たりませんでした。
導入編には、「Visual Basic Editor 初中級操作ガイド(改訂第7版)」のファイルが入っているのですが、抜粋版で70ページまでしかありません。
お手間を取らせて申し訳ございませんが、「Visual Basic Editor 初中級操作ガイド」のダウンロードページを教えていただけますでしょうか。
よろしくお願い申し上げます!
また“:F"のように他の文字と一緒に括っても括らなくても影響はないんですね?
どっちでも良いなら自分としてはどっちかで覚えておきたいんですが...その場合どのように考えておけばいいでしょうか?
再度再生して1-3まで続けて勉強して納得しました。何度もみていたので頭の中にたたき込めました。