ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

Excel方眼紙のデータを「ぶっこ抜く」方法 -その2(つづき)

2013-06-03 16:17:53 | Officeソフト&VBA

Excel方眼紙のデータを「ぶっこ抜く」方法 -その1
http://blog.goo.ne.jp/xmldtp/e/938b64d4d6bd0134a55b932555281fec

の続きです。

もう一度おさらいすりと、ぶっこ抜く方法は、
1.雛形をコピーし、「マクロの記録」を実行、
   入力エリアに文字を入れて、マクロを保存、
   入力エリアを確認します。

2.データぶっこ抜きシートを作成し、
   ファイル名
   データ
  シートを作成

3.上記2で作成したシートに、1のマクロを
  もとに、「データぶっこ抜き」マクロを
  作成します。

4.Excel方眼紙で作ったデータを1フォルダ
  にあつめて、2のシートの「ファイル名」に
  書きます

5.上記3で作ったマクロを実行!



でした。今1が終わりました。今度は、2からです。




■2.データぶっこ抜きシートを作成

 新たに「データぶっこ抜きシート」を作成します。
 ここでは、「データ収集.xls」というファイルを作成します。
 そうしたら、「ファイル名」と「データ」というシート名で、
シートを作成してください(本当は自由にシート名をつけられるのですが、
あとのマクロ作成のために、こうします)





■3.データぶっこ抜きマクロ作成

「ツール」→「マクロ」→「Visual Basic Editor」を選んで、
VBEを開きます。

そうしたら、左側のプロジェクトを右クリックして「挿入」→「標準モジュール」
を選ぶと、Module1という標準モジュールができます。

そうしたら、Module1の中に、以下のように記入してください。


Sub dataget()
Dim b As Workbook
Dim t As Workbook

Set t = ActiveWorkbook
gyo = 2
Do While (t.Sheets("ファイル名").Cells(gyo, 3) <> "")
Set b = Workbooks.Open(Sheets("ファイル名").Cells(gyo, 3))

'ここに、データぶっこぬきマクロが入ります

b.Close
gyo = gyo + 1
Loop
End Sub



何も考えず、このまま、コピペでOKです。

つぎに、前回の1で作成したマクロを書き入れるのですが、
単純なコピーではだめです。以下のように書き入れます。

(1)セル結合の場合
    Range("M7:AU8").FormulaR1C1 = "あ"
  のようなカタチだと思います。このときは、

t.Sheets("データ").Cells(gyo, 2) = b.Sheets("Sheet1").Range("M7:AU8").FormulaR1C1

 となるように、左辺に、
   (あ)t.Sheets("データ").Cells(gyo, 書き出す列番号)を付け加え
   (い)右辺は、b.Sheets("集計するExcel方眼紙のシート名").を前に書いて
   (う)Range("M7:AU8").FormulaR1C1部分を書き加える


(2)図形にテキストを入れた場合

ActiveSheet.Shapes("Text Box 2").TextFrame.Characters.Text = "う"

 のようなカタチだと思います。
 このとき、
t.Sheets("データ").Cells(gyo, 4) = b.Sheets("Sheet1").Shapes("Text Box 2").TextFrame.Characters.Text

 となるように、左辺に、
   (あ)t.Sheets("データ").Cells(gyo, 書き出す列番号)を付け加え
   (い)右辺は、ActiveSheetの代わりにb.Sheets("集計するExcel方眼紙のシート名").を前に書いて
   (う)Shapes("Text Box 2").TextFrame.Characters.Text
部分を書き加える

結果として、Excelマクロは、こんなふうになります。


Sub dataget()
Dim b As Workbook
Dim t As Workbook

Set t = ActiveWorkbook
gyo = 2
Do While (t.Sheets("ファイル名").Cells(gyo, 3) <> "")
Set b = Workbooks.Open(Sheets("ファイル名").Cells(gyo, 3))

'ここに、データぶっこぬきマクロが入ります
t.Sheets("データ").Cells(gyo, 2) = b.Sheets("Sheet1").Range("M7:AU8").FormulaR1C1
t.Sheets("データ").Cells(gyo, 3) = b.Sheets("Sheet1").Range("M9:AU10").FormulaR1C1
t.Sheets("データ").Cells(gyo, 4) = b.Sheets("Sheet1").Shapes("Text Box 2").TextFrame.Characters.Text
t.Sheets("データ").Cells(gyo, 5) = b.Sheets("Sheet1").Shapes("Text Box 5").TextFrame.Characters.Text


b.Close
gyo = gyo + 1
Loop
End Sub




左辺、"t.Sheets("データ").Cells(gyo," の後、数字を1つづつ上げていく(例だと、2,3,4,5と上がっている)のを、忘れないでくださいね!
ここまでの操作で、こんな風になります。

これで、
  ・フロッピーの形をしたアイコンをクリックして保存し、
  ・右上Xをクリックして、VBEを終了させてください




■4.Excel方眼紙データをあつめ、「ファイル名」シートに書く

まず、回答してもらったデータを、どこかのフォルダにまとめます。

なかんじ。

そしたら、2で作ったシート(ここではデータ収集.xls)を開いて

のように、2行目から
  1列目に、まとめたフォルダのパス(すべて同じのはず)
  2列目に、集計するExcelファイル名
  3列目は、2行目に
      =A2 & "\" & B2
    とかいて、コピーすると、ファイルのパスができるはず(ここをマクロでは使う)




■5.実行!

「データ収集.xls」が開いている状態で
「データ」→「マクロ」→「マクロ」

を選択。出てきたダイアログで

dataget

(=データ収集のときに作ったマクロ)を選択して
「実行」(=「実行」ボタンをクリック)

そうすると、実行して、その後「データ」シートをみると

なかんじでできている。




あ~、書き方悪くて、複雑そうに見えるかもしれないけど、
マクロのソースは基本的にコピペと一部の決まった書き換えなので
そんなに複雑じゃない。やってみるとわかると思う。

この逆操作で、Excel方眼紙にデータがセットできたり、
4のファイル名をもっと簡単に作成する(バッチコマンドのDIRの結果をテキストに書いて)
など、いろいろ説明したいことはあるが、
今回は長すぎてしまうので、ここできります。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excel方眼紙のデータを「ぶっこ抜く」方法 -その1

2013-06-03 13:52:33 | Officeソフト&VBA
Excel方眼紙だと、マクロが組みにくいとだれだったか、コメントしてて、
「そんなこた~ね~だろ~、cellsにしろ、Rangeでやるにしろ、
 マクロでデータ抜くのは、同じジャン??」

 と思って・・・ああああああ!気が付いた!!
 たしかに、そう感じるかも!!

Excel方眼紙というのは、実は2つの流派があって、
   ・枠を、セル結合で作る
   ・枠を、図形で作る
があるのですが、後者の、図形で作られた場合、知らないと、テキストをどうやって
取ってくるか、たしかにわからないかも・・・

ということで、「Excel方眼紙のデータを「ぶっこ抜く」方法」です!




■概要

ぶっこ抜き方の方法は、こんなかんじ

1.雛形をコピーし、「マクロの記録」を実行、
   入力エリアに文字を入れて、マクロを保存、
   入力エリアを確認します。

2.データぶっこ抜きシートを作成し、
   ファイル名
   データ
  シートを作成

3.上記2で作成したシートに、1のマクロを
  もとに、「データぶっこ抜き」マクロを
  作成します。

4.Excel方眼紙で作ったデータを1フォルダ
  にあつめて、2のシートの「ファイル名」に
  書きます

5.上記3で作ったマクロを実行!




■御題

以下のExcel方眼紙(雛形.xls)があります。

このSheet1に
   クラウディアさん(data1.xls)
   日経BPさん(data2.xls)
   オライリージャパンさん(data3.xls)
が回答してくれました。
このデータを、データ収集.xlsの「データ」シートにぶっこ抜いてください。




■1.雛形をコピーし、「マクロの記録」を実行

雛形.xlsをコピーして、a.xlsという名前のExcel方眼紙ファイルを作ります。

ここで、「マクロ」→「新しいマクロの記録」で、マクロを記録します。

 そうしたら、入力欄に、テキトーに言葉を入れてください。
 ダブらなければ、数字、文字、放送禁止用語、どんな言葉でも結構です。
 
 入れたら、マクロを止めます。

そうしたら、マクロを見ます。
「ツール」→「マクロ」→「Visual Basic Editor」を開き、

「標準モジュール」の「module1」を選ぶと、こんなかんじになっているはず

ここで、

Range("M7:AU8").Select
ActiveCell.FormulaR1C1 = "あ"

のように、「Range」のあと「FormulaR1C1」になっているのは、
セル連結で作ったもの。これを、

Range("M7:AU8").FormulaR1C1 = "あ"

のように、Selectと、ActiveCellを消去して1行にしてください。
ほかのセル連結(Range ActiveCellの組)も同様に。

つぎに、

ActiveSheet.Shapes("Text Box 2").Select
Selection.Characters.Text = "う"

のように、「Shapes」のあとに、「Characters.Text」になっているものがあります。
これは、テキストボックスで作ったもの。これを、

ActiveSheet.Shapes("Text Box 2").Characters.Text = "う"

のように、.SelectとSelectionを消去したところに、(代わりに)
TextFrameを入れて!1行にしてください
TextFrameを入れるのが、ミソです。他のテキストボックスも同様。
そして、それ以外は削除。そうすると、

になりますね。
ここで、文字をセットしている文字列を適当に変えてください。こんなかんじ。

そしたら、保存して右上のXをクリックして「Visual Basic Editor」を閉じます。
「ツール」→「マクロ」→「マクロ」を選択して、

出てきたダイアログから、今修正した「Macro1」を実行してください

設定した値になりましたか?





長くなりすぎたので、ここできります。
次は、実際にデータぶっこ抜きマクロを書きます。

続きは、以下のエントリーで!

Excel方眼紙のデータを「ぶっこ抜く」方法 -その2(つづき)
http://blog.goo.ne.jp/xmldtp/e/c1826760af2f1e534010ce3532e31bc2

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

WindowsXPだけでなく、Office2003もサポート切れになるんだけど・・・大丈夫?

2013-05-27 21:02:31 | Officeソフト&VBA

XP更新悩む自治体…財政難「使い続けるしか」
http://www.yomiuri.co.jp/net/news0/20130527-OYT1T00182.htm


一生懸命、XPからの移行作業、やってるようですね!

ところで、2014年にサポート切れになるのは、XPだけでなく、
Office2003もそうなんだけど、大丈夫?

http://www.microsoft.com/ja-jp/windows/lifecycle/xp_eos.aspx?WT.mc_id=13_cm_wi_eos_

XPを入れている人って、Office2003入れてることも多いから、注意だよね!

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Office15(Office2010の次期バージョン)テクニカルプレビュープログラム開始

2012-02-01 13:17:19 | Officeソフト&VBA
って、日経

MS、「Office 15」のプレビュー開始 製品版は2013年か

ぐらいしか、ニュースにしてないよね

ニュースにならないのかな?
スラッシュドットにもない?

みんな、MS Officeには、興味ないってことかな?
Excel君、涙目(;_;)

"Office 15" Begins Technical Preview
http://blogs.office.com/b/office-exec/archive/2012/01/30/quot-office-15-quot-begins-technical-preview.aspx

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ExcelVBAで、他のシートをSortしようとするとエラーになる場合

2011-12-02 13:28:40 | Officeソフト&VBA
 Excel VBAで、
   そのシートが開いていない状態で、
   ソートを行いたいとき

 マクロで書き出すものは、Selectを使っている。

 そこで、selectの代わりに、シート名とレンジを指定して書くと、
 「並び替えの参照が~」または、「結合セル~」のエラーになり、

 そのシートをActivateしようとすると、
 「Range クラスの Select メソッドが失敗しました」

となる場合。




後者については、ここでActiveしても、Selectが出来ないみたい。

じゃあ、どうやるか・・・だけど・・・

例えば今、「マスター」シートにあるボタンから起動して、
「作業用」シートをソートしたいとすると

(1)「作業用」シートのマクロに、ソートするマクロを書く

Public Sub narabikae()
Range("A3:J54").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlDescending, Header:=xlNo, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=xlSortNormal
End Sub

みたいなかんじ。

(2)呼び出し側の「マスター」シートのマクロで、(1)を呼び出す

Call Sheets("作業用").narabikae


そうすると、できるみたいよ・・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelで難しい方程式の解を求める - ソルバー

2011-06-22 17:13:44 | Officeソフト&VBA
例えば、5次方程式の解を求めたい場合、これは、解けないからわからない。
しかし、グラフを書くことは、一階微分、二階微分できるから可能で、
その結果、このへんが、解なんじゃないの?というおおよその値はわかる。

このようなとき、Excelのソルバーを使うと、答えを準ニュートン法?
によって、求めてくれる。

こんなかんじ




■まずはソルバーをアドインへ(1回やれば良い)

 Excelを立ち上げたら、「ツール」の「アドイン」を選択
 こんなダイアログが出るから



ソルバーアドインをチェックしてOK。




■式を書く

求めたい方程式を書くんだけど、そのとき
  ・Xになるところにセルの番号を入れて
  ・X=yの形でなく、X-Y=0の形にして、
   さらに(X-Y)^2の最小値をもとめることで、
   Xが求まるようにする

今回は、X^5=3となる値を求めましょう(難しくないけど)
そして、Xの値をA2セルに入れるとします。

すると式は、A2^5=3となるので、=0の形にするには、移項して
A2^5-3、これの2乗を0にして最小値だから
(A2^5-3)^2
を式にすればよい。これをB3に入れる。





■ソルバー起動

ツールからソルバーを選ぶと


以下のダイアログが出る。



目的セルは式が入っているほう、変化させるセルは、xの値のかわりに入れたセル、
上記の例ではA2、そこに適当に値を入れる。

あとは、ボタンをクリックすれば



求めてくれる

x^5=3とは、結局3^0.2を求めていることなので、それを下に入れてみました

おお、おなじですね。




■ちなみに

 すべての解を求めてくれるわけではなく、セットした値の近くだけを探してくれる。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelで統計処理をする場合

2011-06-03 15:12:51 | Officeソフト&VBA
分析ツールというアドインを使う。

まず、ツールのアドインを選択


出てきたダイアログで、「分析ツール」をチェックしてOK


分析ツールを起動すると、


統計処理がいろいろ出てくる。


なかんじ。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelクンの列の幅の単位:半角文字の文字数-却下。Libera office入れる!

2011-05-02 11:47:24 | Officeソフト&VBA
 今、Excelで、あるフォームを作っていたんだけど、フォームの大きさが決まっていて、
 定規を当てると、ビシッ、ビシッ、とミリ単位であってくる。

 なんで、もともとの大きさは、ミリ単位で出来ているらしいので、
 Excelでミリ単位で行の幅、高さを入れようとしたら・・・


[XL2002]列の幅と行の高さ表す単位について
http://support.microsoft.com/kb/401638/ja


何じゃそりゃ?
幅は、半角文字の文字数、高さは、ポイントで指定しろですと!
なもん、計算するのが面倒だし、ビシッと合わないジャン。
却下。

Libera office入れる!




Libera officeを、

http://www.libreoffice.org/download/

からダウンロード。
LibO_3.3.2_Win_x86_install_multi.exe 214 MB
をクリックしてダウンロードしてインストール
(下のhelppackを入れないと、ヘルプを見るとき、ネット上にあるヘルプが出るんだけど。。
 ま、いいや)

起動して、「おおおお、センチ単位で指定できる!小数点でミリで指定できる!!」
らくらく・・・




だけど、大きさだけを指定したら、Excel形式で保存して、
結局Excelで作ってるんだけどね(^^;)

(Libera officeだと、どこでも編集できるわけではないので)


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Office 2007なんだけど、音声合成したい場合

2011-02-15 22:43:30 | Officeソフト&VBA

きのう書いた

Excelが、バレンタインで残念なあなたのために、愛の言葉をささやき続るってこと?(理論上)
http://blog.goo.ne.jp/xmldtp/e/2722fb9ac9cdf293ff78b371bfb42471


なんだけど、どうも、Office2003が入っていると、LH KenjiとLH Naokoが入っていて、音声合成で読み上げてくれるんだけど、Office 2007には、入っていないようだ。

 で、Office2007で音声合成(読み上げ)をやらせたい場合なんだけど・・・

ドキュメントトーカ Plus
http://www.createsystem.co.jp/DTalkerSapi1.html


というのをインストールすると、できるみたいだ。
フリー版も出ている。

上記サイトにいって、

ドキュメントトーカ PlusV2 (x86) Free (最新バージョンV2.1.1.7)

とかいてあるところの、Freeのところをクリックすると、

ダウンロード(DTALKERPV2117.EXE: 9.86MB) (Ver2.1.1.7 2010/09/17)

ってかいてあるところがあって、そこをクリックすると、EXEファイルがダウンロードできる
これをインストールすると、きのう書いた


のところ、LH Naokoはないんだけど、いろんな声が選べるようになる。

女性の声もえらべるYo!



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelが、バレンタインで残念なあなたのために、愛の言葉をささやき続るってこと?(理論上)

2011-02-14 20:17:05 | Officeソフト&VBA

ここのサイト


Excelから、好きな言葉(日本語はもちろん英語も)をしゃべらせる方法(マクロを使って)
http://blogs.yahoo.co.jp/sme_okano/1898391.html


に書いてある話だけど、そもそも、Windowsの音声は、「音声合成」で男性と女性選べるから(あれ、このパソコンだけなのかなあ?)
女性を選べば、Excelから、好きな言葉をささやいてくれる、つまり、

   バレンタインで残念だったあなたにも、 
   好きな愛の言葉をささやき続けてくれる!

ってことになる(理論上、あくまでも理論上!!)。

ま、やってみましょうか・・・




■概要

手順は、こんなかんじ

(1)コントロールパネルの音声合成で、女性の声を選択
(2)ExcelシートのA1セルの文字を、音声合成で読ませるマクロを作成
(3)A1セルにお好きな愛の言葉を記述する
(4)マクロ実行。

このうち、さっき書いた、「Excelから、好きな言葉(日本語はもちろん英語も)をしゃべらせる方法(マクロを使って) 」に、(2)~(4)のやり方は書いてあるので、問題は、(1)のやり方だけ説明すればよい。




■コントロールパネルの音声合成で、女性の声を選択

「スタート」ボタン→「コントロールパネル」を選択すると、こんなかんじ。


「音声認識」を選択すると、ダイアログが立ち上がる。

「音声合成」のタブをクリック。

「音声の選択」を「LH Kenji」から「LH Naoko」に変えて

「適用」ボタンをクリック、保存して、「OK」ボタンで終了。
(「音声の速度」を、ちょっと、遅めにしたほうが、女性っぽくなる)




あとは、さっきのサイトに書いてあるマクロを記述し、
A1セルに愛の言葉を入れて
マクロ実行!


え、ちがーう!!(-_-;)って、

いいや、理論的、理論的には、Naokoさんがささやいてるのよ・・・
苦情はMicrosoftにいってくれ・・・
女の子っぽくないのは、バグではなくて、仕様です・・・



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Wordで同じ言葉を入力する場合、登録すると便利(定型句)

2011-01-27 10:11:37 | Officeソフト&VBA

 Wordを使っているとき、同じ言葉を、長々と入力しないといけないときがある。

 たとえば、

 「正常に動作することを目視で確認しました」

 ということを、いっぱい書かなきゃいけないときがあったとします。
 こういう場合、「正常に」だけを入力したら、あとの文を全部書いてくれると便利です。

 このやり方があれば、書き方も統一できますし・・・

 こういう、同じ言葉の繰り返しや、書き方を統一するために使うのが「定型句」です。
 これは、もともと、手紙文用のものは入っているのですが、自分でカスタマイズできるので、今回は、それについてメモメモ。




■定型文の入れ方

1.定型文にしたい文章を書きます。
2.その部分を選択します
3.メニューバーから「挿入」→「定型句」→「新規作成」を選ぶ


4.出てきたダイアログで、適当に名前をつける(そのままでもよい)


これで登録完了!




■定型文の使い方

・っていうか、はじめの部分、さっきだったら「正常に」とまで打って、変換をかけると、でてきます。


・それ以外でも、「挿入」→「定型句」→「標準」から選んでもOK
 選ぶと、いまカーソルのあるところに入ります。





■定型文の削除

 いらなくなったら、「挿入」→「定型句」→「定型句」を選ぶと、以下のダイアログが出るので


 いらなくなった定型句を選んで、「削除」ボタンをクリック。




こんなかんじ




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Wordのマクロを使って、ページを作成、表を貼りこんで、そこに文字を入れる

2011-01-26 17:55:48 | Officeソフト&VBA

 仕様書なんか書く場合、Wordの差込印刷を使うんじゃなくって、
 Excelとかに書いてある内容に基づいて、ページを作成、表を貼りこんで、その表の指定した場所に、Excelに書かれている文字を入れたいというケース、ありませんか?

 今回は、そんなときに役立ちそうな、「Wordのマクロを使って、ページを作成、表を貼りこんで、そこに文字を入れる」っていう方法。

 まずは、マクロを書いちゃいます。こんなかんじ

Sub Macro4()
    
    '   雛形テーブルをコピーする
    ActiveDocument.Tables(1).Select
    Selection.Copy
    
    
    '改ページして、はりつけ
    For i = 2 To 5
        '   一番終わりに行って、ページ作成
        ActiveDocument.Characters.Last.Select
        Selection.InsertBreak Type:=wdPageBreak
        
        '一番終わりに行き、枠を貼り付け
        ActiveDocument.Characters.Last.Select
        Selection.PasteAndFormat (wdPasteDefault)
        
        '文字をセット
        Set myTable = ActiveDocument.Tables(i)
        myTable.Cell(2, 1).Select
        Selection.TypeText Text:=i & "個目"
    
    Next
    

End Sub



はじめのページに雛形があって、テーブルが書いてある。そのテーブルをコピーし、
for文で、4こぶん(2~5)作っている。

つくりかたとしては、
ActiveDocument.Characters.Last.Select
でいちばん最後にいって、
Selection.InsertBreak Type:=wdPageBreak
で、改ページをいれている。

そしたら、
ActiveDocument.Characters.Last.Select
でいちばん最後にいって、
Selection.PasteAndFormat (wdPasteDefault)
で、はじめにコピーしたテーブルをはりこんでいる

あとは、セルを選択して、文字を書いている

ってかんじ。

はじめのページに雛形(空欄にして)を書いておけば、あとは、必要分数ループして作ってくれるね!


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelで郵便番号を設定/確認する

2011-01-26 11:09:31 | Officeソフト&VBA

 Excelで住所をいれておくと、郵便番号を探してくれる(入れてくれる)機能がある。
 (逆に郵便番号から住所もあるみたい)

 これを、メモメモ




■1.インストール

ここ
住所から郵便番号、または郵便番号から住所を入力する
http://office.microsoft.com/ja-jp/excel-help/HP010077514.aspx


にあるように2つインストールする

●1つは、「Excel アドイン: 郵便番号変換ウィザードのダウンロード」
ここにある。
Excel アドイン: 郵便番号変換ウィザード (2000-2007 ユーザー用)
http://www.microsoft.com/downloads/details.aspx?FamilyID=6F6AF8EF-B9DD-4E21-9E63-AF4A0FF4E7CE&displaylang=ja




●もう1つは「Office 郵便番号辞書のダウンロード」
ここにある。
Office 更新プログラム: 郵便番号辞書 (2010 年 5 月版)
http://www.microsoft.com/downloads/details.aspx?familyid=45192822%2DFBA7%2D49E6%2DB220%2D09BB32250EB3&displaylang=ja



どちらも、ダウンロードしてくると、exeファイルができるので、ダブルクリックすれば、実行する。




■2.設定

Excelを立ち上げて(インストール前に立ち上がっていたら、もう一度立ち上げなおして)
「ツール」→「アドイン」を選択
「アドインダイアログ」がでるので、「郵便番号変換ウィザード」にチェックを入れる




■3.使い方

ここ


5.Excel で校正 > 5-5 Excel 郵便番号変換ウィザード
http://www.morgan.co.jp/kiso/5excel-5.htm


住所→郵便番号の場合、

・まず、住所の桁を選択する
・「ツール」→「ウィザード」→「郵便番号変換」を選択
・ダイアログが出る。
  住所から郵便番号を生成する
 を選択して、次へ

・「住所データのセル範囲」は選択してあるので入っているはず。
 「郵便番号を出力するセル範囲」を設定して、
 「種類」は、「7桁の郵便番号」、書式は「文字列」
 で、次へ

・エラーがどうでもいい場合は、「完了」
 どこかのセルに出したい場合は、
 「指定したセル範囲に出力する」を選択して、下に、エラーを出力するセルを指定して「次へ」




そうすると、郵便番号が入ります。
空白はまったくわかんなかった、間違っている場合

XXX-0000

となってしまい場合は、住所がなにか抜けている場合です。



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Wordマクロ(VBA)で、表を書いたり、文字を入れたり・・・

2011-01-21 18:23:12 | Officeソフト&VBA


Wordマクロで、表を操作できると、ExcelやAccessからWordにデータを読み込んで、申請書とか作れるので、いいと思いません?
ってことで、Wordの表に関するマクロ操作を調べてみました。




■載っているサイトなど

ワードVBA
http://www.aa.alpha-net.ne.jp/pcfriend/word/WordHeader.htm


とか、

Word VBA の入門用リンク集 (ワードマクロの,サンプルコードやリファレンス)
http://d.hatena.ne.jp/language_and_engineering/20100314/p1


に少し載ってる。

だけど、あんまり書いてない。むしろ、Wordを開いて

マクロ→新しいマクロの記録

で、自分が知りたい操作を行い、その結果を見たほうが早い。
以下の情報は、そうやって集めました(なので、もっといいやり方があるかも)




■表を作成して、セルに文字を入れる。

こんなかんじのマクロを書きます。
Sub Macro1()

'表枠の作成
Set myTable = ActiveDocument.Tables.Add(Selection.Range, 2, 5, wdWord9TableBehavior)

'文字の設定
myTable.Cell(2, 1).Select
Selection.TypeText Text:="2行目の、はじめ"

End Sub


2行5列のテーブルを作る。wdWord9TableBehaviorっていれないと、線が黒くならない。
cellを選択して、TypeTextで値をセットしている。




■表を選択する

 でも、実際は書かれてる表を選択したい場合が多い。
 そんなときは、こうする
Sub Macro2()

'表枠の選択
Set myTable = ActiveDocument.Tables(1)

'セルの書式設定
myTable.Cell(2, 1).Select
Selection.Shading.BackgroundPatternColor = wdColorRose

End Sub


ActiveDocument.Tables(1)のような、引数でテーブルを選択できる。
なお、wdColorRoseは、ばら色(ピンク)。この色のセルになる。


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

○月X日から、△月■日までの、営業日数(時間数)をExcelで求める

2011-01-20 18:34:16 | Officeソフト&VBA

 たとえば、4月1日から、5月28日までの営業日数(すなわち、土日休日を除く)をもとめたかったり、稼動時間数を求めたい場合がある。
 これって、Excelでやると簡単なので、メモしておきます。

 こんな感じのシートを作ります(途中まで、本当はもっとつづく)。





<<作り方>>

■1.(A列:日付を入れる)

 まず、A列に、日付を入れます。
 セルA2に、開始日(今回は2011/4/1)を入れてください。
 そして、そのセルをクリックすると、右下に小さい■(”フィルハンドル”というらしい)が出ます。
 それを、下方向にドラッグさせていくと、日付が、4/2,4/3・・・とどんどん出来てきます。
 終了日の5月28日までドラッグして、手を離します(ドラッグをやめます)

 
■2.(B列:曜日を数字で求めます)

 次にB列に曜日を数字で入力します(月曜日を1とする)
 セルB2に、

  =WEEKDAY(A2,2)

 と入れてください。A2セルの日付が数字で入ります。
 月曜日1、日曜日7となる形です(第二引数に2を指定すると、こうなる)。
 これを、上記のように、フィルハンドルをクリックして、ドラッグして、
 最終日まで埋めてください。


 このとき、日付表示になってしまう場合には、数字にするので、
 B列(Bとかいてあるところ)をクリックして選択したら、
 右クリック、「セルの書式設定」を選択してもらい、
 表示形式を、「数値」にします。


■3.(C列:土日、休日を0にする)

 まず、土日を0、平日を1にします
 セルC2に、

   =IF(B2<=5,1,0)

(<は、本当は半角)

 と入れてください。5以下、すなわち、金曜日以下(=月~金)は、1、
 土日(6,7)は0になります。

 そしたら、フィルハンドルをドラッグして、下まで引っ張ってください。
 土日は0、平日は1になります。

 この方法では、休日は入りません。というか、休日はわかんないので、
A欄が休日をしめしている(たとえば、A30 2011/4/29=昭和の日)行の
C欄(例だとC30)に、直接 0 と入力します。
 このように、休日は、直接0と入力して対処します


■4.(D欄:働いた時間等)

 D欄には働いた時間を入れます。
 今回は、8時間労働とします。
D2欄に
  =C2*8
と入力します。入力したら、これも、一番下まで、
フィルハンドルをドラッグしてください。

こうすると、平日はC欄は1なので
 1*8=8時間となり
休日は0なので、
 0*8=0時間
となって、休日0、平日は労働時間が入ります。
 
8時間働かない日があったら、直接、その日のD欄に
働いた時間数を入れてください。

■5.合計時間を求める

 そしたら、E欄より右側の適当なセルに
=SUM(D:D)
 と書くと、D欄の合計、すなわち労働時間が出ます。
=SUM(C:C)
 と書くと、C欄の合計、すなわち稼動日数が出ます。




<<おまけ>>

やらなくてもいいのですが、図では、土日休日、
つまり、C、D欄が0のところは、灰色になってます。

これは、C欄、D欄を選択して(CとかDとか書いてあるところクリック、
カラム全体が選択される)「書式」メニューの「条件付き書式」を選択
するとできます。以下のようなダイアログが出てきますので、

セルの値が0のとき、灰色になるように指定します。
灰色の指定は、「書式」と書いてあるボタンをクリックして
「パターン」タブを選ぶと、設定できます。




結構便利でしょ!


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする