スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。






エクセル(VBA) マクロの作り方

先日マクロを勉強するという方がおられました。
お正月休みに勉強されるんですかね

教えますよ、
頑張ってください



色々と聞かれましたが、
参考書やテキストを見たって覚えれないと思います。

まずはとにかくやってみないと!!
本なんかを見たって取り組まないと覚えれません。

ちなみに、
VBAの作り方は基本的にこのようにして作ります。

http://page002.web.fc2.com/excel.vba.manual1.html

Book1.xlsのSheet1があるとします。
A1セルにA1セルとB2セルの合計を求める → この仕組みと理屈が分かればVBAなんて難しくないと思います。


まずは関数であったりピボットテーブルや基礎を身に着けておかないとVBAはできないと思います。

いきなり高度な処理はできないと思いますので、
徐々にレベルを上げていくのが良いと思います。

フルマラソンだっていきなり42.195kmなんて走れないですよね?

100m


1500mと走っていって、
最終的には完走できるようになります。

順番がありますから、
きちんと基礎を覚えればVBAなんて乗り越えられます!!

奥が深いですが、
プログラムの書き方もあります。
作りながら覚えていけば自然と頭に入ります。

自分も最初は上手い人が作ったファイルを分解して何度も何度も見て繰り返し調べました。


エクセルの仕組みをある程度理解してからVBAに入るべきです。

エクセルをたまに入力する程度の人とかが、
いきなりマクロとかに入ろうとするから混乱するし挫折するのです。

その点だけ注意してくださいネ

エクセルの事でお問い合わせもお受けしております。
不明点はお問い合わせください♪







スポンサーサイト



エクセルでYouTube解析ツールを作ってみた。

Excel2013でWEBの解析ツールを作ってみました。
YouTube動画のタグをワンクリックで取得します。

Hikakinなど人気ユーチューバの動画にはやはりそれなりのタグが紐ついています。
元々手動で出来る作業を自動化したものです。

問題性はありません。

どなたか使ってみる方おられませんか?
無料でお渡しできます。



昨今はYouTubeアフィリエイトなど活発な時代です。
このファイルを使ってアフィリエイトの特典などにいかがでしょうか?

きちんと使って感想を頂ける方を希望します。

モニターの方を募集しております。
詳しくはお問い合わせください。







エクセルで連番印刷

久し振りのエクセル関係の記事です。


2016年版のOfficeはどうなんでしょうか?
いまいち新鮮さに欠けるような気がします。
  
エクセルも2016年版がもうリリースされていますが、
使ってみたい気はしますね。



 
さて、
今回はエクセルに連番で処理を実行するVBAを作ってみました。
A1セルに入力された数字に+1をして、
計算結果をそのままA1セルに返します。

これを指定回数繰り返すプログラムです。

※サンプルファイル有り。
 

Sub連番印刷()
 
'作成日:2015/12/20(日)
 
'変数へ整数を格納する。
DimiAsInteger
'繰り返し回数を指定する。
Fori=1To5
 
'指定セルに現在の文字列+1の処理結果を返す。
Range("A1").Value=Range("A1").Value+1
 
'アラートを表示する。
MsgBox("test")
 
Next
 
 
EndSub

 

上記構文のアラートの部分をActiveSheet.PrintOutとかにすれば連番印刷ができるわけです。


今回のプログラムではFor ~Nextの間の処理を何回繰り返すかを指定できます。

 
同じ使い方でDo ~ Loopでもコンピューターはしっかりと処理をしてくれます。
For ~Nextと、Do ~ Loopでも処理結果は同じです。
 
一般的にFor ~Nextは繰り返し回数が決まっている場合に使います。
今回のプログラムではハッキリと5回までと決まっています。
 
Do ~ Loopの場合は、
例えば「セルのA列を参照していって5が出るまで繰り返す」といった場合に使われます。
ハッキリと繰り返し回数が決まっていない場合に使われます。
繰り返しが1回で終わるかもしれないし100回繰り返すかもしれないのです。
 
 
繰り返し処理のプログラムを作る場合は注意が必要です。
1000回や10000回繰り返すこともあります。
 
最近のパソコンはいくらスペックがあっても、
うまく作らないとフリーズしたり最悪はファイルが破損したりもします。
 
だから1000回繰り返すのであれば
100回を10回に分けるとか工夫が必要です。
 
別にVBAに限らずですけど
プログラムって作った人の個性が出ると思いますよ。

【サンプルファイル】
No.49よりダウンロードしてください。







VBAで条件付き書式を操作

久し振りのエクセルの記事です。

エクセルでVBAを作成中です。
以下をリンクを参考にしています。
 
http://oshiete.goo.ne.jp/qa/2415760.html
 
かなりレベルが高いですね。
中々ここまでは作れないです。
 
かなり上級者向けですね。
 
コードを見てみましたけど、
仕組みがよく分からないので自分もまだまだかなと思います。
もっと研究しなくちゃ。
 
セルに条件を付けて特定のセルに特定の文字列が入力された場合に、
任意セルの色を変えることができます。(※関数ではできません)
 
例えば、
A1セルに1と入力された場合 → B1セルを赤色にする


という感じです。


これを他のブックへコピーして貼り付けると、
条件まではコピーできないのでセルの色は取得できない訳です。
 
よって条件付き書式の結果は引き継げません。
 
今回は入力元のエクセルから
自動でエクセルを条件付き書式で設定した色をそのまま引き継いで
上書き保存しブック閉じるというものを作っています。
 
自動で上書き保存や、
ブックを閉じたり開いたりは簡単です。
 
実はエクセルってブックを開かなくてもある程度制御できるんですね。
 
VBAを使えば、 
エクセルに標準で搭載されている条件付き書式の機能にも逆らって作業ができます。 
 
私は元々このような作業は好きなんで
興味があって好きな事には時間をかけてでも取り組めますね。
 
現代社会ではパソコンのエクセルを使わない職場なんて無いでしょう。
 
今回は毎月の月初に30分くらいかかっている作業を簡素化しようとしています。
それがワンクリックでほんの数秒で終了できるようになります。

この改善効果は大きいですね。
 
どうせ作業するなら効率の良いほうがいいです。

(8割はできてますけど、今週中に作るって言っちゃったけどまだ結構かかりそうです)
 
簡単にはできませんけど 
頑張って作ります。
 
悩んで考えて作ってこそ
完璧に動いたときの感動は大きいです。

だからこそ仕事としても乗り切れるんです。







エクセルでデータ印(はんこ) 作成

エクセルでデータ印を作成が必要なので、
色々と窓の杜とかで探してみました。
なぜかアドオンを入れたり複雑なものばかりでした。
フリーソフトとかで作るメリットもあまり感じませんでした。
 
探すのが面倒なので自分で作ってみました。
一番下がVBAのコードです。
エクセル2013で作りました。

このような場合はシンプルであるのがいいんです。
以下であればワンクリックで完結できます。

 
テキストボックスも画像もエクセルではオブジェクト扱いになります。
オブジェクトに名前を付けて文字列を代入しています。

やっぱり自分で作ったほうが早くて簡単でした。
自分で作ったんですから操作を忘れることもありません。
(でも古いものは自分でも使い方が分からないものはあります…)

慣れていればこれくらいは直ぐにマクロを組めますね。
 
変数を入れる場合にStringは文字列です。
Longの場合は数値の時に使います。
Variantで指定すればどんな変数でも入れることができます。

今回はオブジェクトへデータを入れていますが、
逆にオブジェクトからデータを引っ張ってくることもできます。

 
逆に以下のようにすれば変数xにオブジェクトへ入力されている文字や数字が代入されます。 

TextBoxes("text1").Text=x
  
エクセルのマクロって答えは1つではないんです。
今回は変数を入れていますけど、

例えば以下でもVBAはしっかりと処理を実行してくれます。

ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text1").Text=Range("B11").Value
 
処理結果は全く同じです。
変数を使わなかったらプログラムのコードが多少短くなります。
ちなみにVBAというのはエクセルとは本来別のものです。
表計算ではできないことをやるわけですから、
エクセルとは切り離して考えるのが正しいんです。
   
エクセル

Subデータ印作成()

'作成日:2015/10/10(土)

'文字列の変数を格納する。
DimxAsString
DimyAsString
DimzAsString

'指定セルの文字列を格納する。
x=Range("B11").Value
y=Range("B12").Value
z=Range("B13").Value

'変数が未入力の場合に終了させる。
Ifx=""ThenGoTor
Ify=""ThenGoTor
Ifz=""ThenGoTor

'オブジェクトに変数を代入する。
ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text1").Text=x
ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text2").Text=y
ThisWorkbook.Worksheets("【データ印作成】").TextBoxes("text3").Text=z

'指定範囲を画像として指定セルに返す。
Range("C1:E6").CopyPicture_
Appearance:=xlScreen,Format:=xlPicture
Worksheets("【データ印作成】").PasteRange("A1")

ExitSub

r:

MsgBox("※未入力のデータがあります。")

EndSub






《P.R.》
iPhone
プロフィール

深田ひろみ

Author:深田ひろみ
おまかせ日記にようこそ!
流行りの商品の紹介やニュースや
芸能情報まで
ありとあらゆる話題を書きます!

趣味も紹介しますのでお気軽に
絡んで下さい!

《地方を元気に!!》
   鳥取発

カテゴリ
サイトマップ

全ての記事を表示する

検索フォーム
最新記事
《スポンサードリンク》
最新コメント
月別アーカイブ
管理人へメール
ご意見・ご感想をお聞かせください。
相互リンクも募集中です。

お名前:
メール:
件名:
本文:

カウンター

現在の閲覧者数:
《P.R.》
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。