久々にエクセルマクロを作成した。
やっぱり落ち着く。
次のOfficeからVBAが消えちゃうみたいだけど。。。
はぁ~、これからどうしよう。
更に就職難。
Sub Main
'-----------------------------------------------------------
' 関数名:
' 引数
' 戻り値
'
'-----------------------------------------------------------
For n = a To b
If Sheets("住所録").Cells(Row, 4) = "封筒1" Then
Sheets("封筒1").Select
''郵便番号
Sheets("封筒1").Cells(13, 1) = Sheets("住所録").Cells(Row, 6)
''都道府県+住所1
Sheets("封筒1").Cells(15, 1) = Sheets("住所録").Cells(Row, 7) & Sheets("住所録").Cells(Row, 8)
''住所2
Sheets("封筒1").Cells(18, 1) = Sheets("住所録").Cells(Row, 9)
''名前
Sheets("封筒1").Cells(21, 1) = Sheets("住所録").Cells(Row, 5) & " 様"
ActiveSheet.PrintPreview
Sheets("封筒1").Cells(13, 1) = ""
Sheets("封筒1").Cells(15, 1) = ""
Sheets("封筒1").Cells(18, 1) = ""
Sheets("封筒1").Cells(21, 1) = ""
ElseIf Sheets("住所録").Cells(Row, 4) = "封筒2" Then
Sheets("封筒2").Select
''郵便番号
Sheets("封筒2").Cells(13, 1) = Sheets("住所録").Cells(Row, 6)
''都道府県+住所1
Sheets("封筒2").Cells(15, 1) = Sheets("住所録").Cells(Row, 7) & Sheets("住所録").Cells(Row, 8)
''住所2
Sheets("封筒2").Cells(18, 1) = Sheets("住所録").Cells(Row, 9)
''名前
Sheets("封筒2").Cells(21, 1) = Sheets("住所録").Cells(Row, 5) & " 様"
ActiveSheet.PrintPreview
'--------------------------------------------------------------------
' clear
'--------------------------------------------------------------------
Sheets("封筒2").Cells(13, 1) = ""
Sheets("封筒2").Cells(15, 1) = ""
Sheets("封筒2").Cells(18, 1) = ""
Sheets("封筒2").Cells(21, 1) = ""
ElseIf Sheets("住所録").Cells(Row, 4) = "封筒3" Then
Sheets("封筒3").Select
''郵便番号
Sheets("封筒3").Cells(13, 1) = Sheets("住所録").Cells(Row, 6)
''都道府県+住所1
Sheets("封筒3").Cells(15, 1) = Sheets("住所録").Cells(Row, 7) & Sheets("住所録").Cells(Row, 8)
''住所2
Sheets("封筒3").Cells(18, 1) = Sheets("住所録").Cells(Row, 9)
''所属1
Sheets("封筒3").Cells(21, 1) = Sheets("住所録").Cells(Row, 10)
''所属2
Sheets("封筒3").Cells(22, 1) = Sheets("住所録").Cells(Row, 11)
''所属3
Sheets("封筒3").Cells(23, 1) = Sheets("住所録").Cells(Row, 12)
''名前
Sheets("封筒3").Cells(24, 1) = Sheets("住所録").Cells(Row, 5) & " 様"
ActiveSheet.PrintPreview
'--------------------------------------------------------------------
' clear
'--------------------------------------------------------------------
Sheets("封筒3").Cells(13, 1) = ""
Sheets("封筒3").Cells(15, 1) = ""
Sheets("封筒3").Cells(18, 1) = ""
Sheets("封筒3").Cells(21, 1) = ""
Sheets("封筒3").Cells(22, 1) = ""
Sheets("封筒3").Cells(23, 1) = ""
Sheets("封筒3").Cells(24, 1) = ""
Else
MsgBox ("封筒が選択されていません。")
End If
Row = Row + 1
Next
Sheets("住所録").Select
2012年6月7日木曜日
QGIS:バージョン1.7.4
『QGIS-OSGeo4W-1.7.4-d211b16-Setup.exe』を使ってQGIS1.7.4をインストール。
1.6との違いを検証するため。
無事、インストール完了。
①ラスターレイヤを追加してみる。
ツールバーにある「ラスタレイヤの追加」をクリック!
「ファイルを開く」のダイアログが表示されるのでラスタデータを選択して「開く」をクリック!
データ表示!
②ベクターレイヤを追加してみる。
ツールバーにある「ベクタレイヤの追加」をクリック!
1.6との違いを検証するため。
無事、インストール完了。
①ラスターレイヤを追加してみる。
ツールバーにある「ラスタレイヤの追加」をクリック!
「ファイルを開く」のダイアログが表示されるのでラスタデータを選択して「開く」をクリック!
データ表示!
ツールバーにある「ベクタレイヤの追加」をクリック!
「ベクタレイヤの追加」ダイアログが表示。エンコーディングは「System」。
(デフォルトsystemなんで、あんまり気にしたことないかも。)
「ブラウズ」ボタンを押してshpファイルを選択する。
データ表示!
でも、エンコーディングが「system」だと属性テーブルの中の日本語がバケる。。。
PostGIS:流域界と土地利用の重なり合う部分
流域界を水域系CDでディゾルブしたものと土地利用コードメッシュをインターセクトする。
①水系域CDを取得。
SELECT distinct(水系域CD) FROM 水系域ディゾルブテーブル;
②インターセクト
SELECT a2.*,(ST_Intersection(a1.the_geom,a2.the_geom)) As the_geom
FROM 水系域ディゾルブテーブル a1 ,土地利用コード a2
WHERE ST_Intersects(a1.the_geom, a2.the_geom) and a1.W12_002 ='水系域CD';
これで指定した水系域単位ごとに土地利用コードが取得できるハズ!
QGISで見ると流域単位で土地利用コードが集計されてます。
①水系域CDを取得。
SELECT distinct(水系域CD) FROM 水系域ディゾルブテーブル;
②インターセクト
SELECT a2.*,(ST_Intersection(a1.the_geom,a2.the_geom)) As the_geom
FROM 水系域ディゾルブテーブル a1 ,土地利用コード a2
WHERE ST_Intersects(a1.the_geom, a2.the_geom) and a1.W12_002 ='水系域CD';
これで指定した水系域単位ごとに土地利用コードが取得できるハズ!
QGISで見ると流域単位で土地利用コードが集計されてます。
2012年6月1日金曜日
GRASS:流域界のバタバタで覚えたコト。
流域界・非集水域(面)のジオメトリが落ちてる騒動でシェープファイルをGRASS様で
いろいろかまってみた。
【v.clean】
Toolset to clean vector topology (きっとガクガクした境界とかをキレイにしてくれるイメージ)
クリーニングツールがいっぱいある。
全部、選択するともれなくこける。メモリ容量が足りないらしい。。。
break: break lines at each intersection(交差して壊れたラインかなぁ。。。)
バーテックスを切り離し、交差させてみる。
v.clean --overwrite input=input_file_name output=output_file_name tool=break
無事、治りました。
snap: snap lines to vertex in threshold(しきい値の中のラインを折る。。。)
エキサイトで翻訳するとエキサイトにしかならない。。。
remove dangle: remove dangle, threhold ignored < 0 ()
②v.generalize
cleanで太刀打ち出来なかったらgeneralizeと言われたのでやってみた。
何も考えないでgeneralizeしたら境界線が直線になった。
おそらくアルゴリズム=douglas 許容差値=0~1000ぐらいにした。
本当はchaikenでやりたかったケド、許容差値をどれだけ広げてもメモリが足りないため
douglas_redeductin(0-100)でやってみた。
でも、元もテーブルの属性はついてこない。。。(涙)
いろいろかまってみた。
【v.clean】
Toolset to clean vector topology (きっとガクガクした境界とかをキレイにしてくれるイメージ)
クリーニングツールがいっぱいある。
全部、選択するともれなくこける。メモリ容量が足りないらしい。。。
break: break lines at each intersection(交差して壊れたラインかなぁ。。。)
バーテックスを切り離し、交差させてみる。
v.clean --overwrite input=input_file_name output=output_file_name tool=break
無事、治りました。
snap: snap lines to vertex in threshold(しきい値の中のラインを折る。。。)
エキサイトで翻訳するとエキサイトにしかならない。。。
remove dangle: remove dangle, threhold ignored < 0 ()
②v.generalize
cleanで太刀打ち出来なかったらgeneralizeと言われたのでやってみた。
何も考えないでgeneralizeしたら境界線が直線になった。
おそらくアルゴリズム=douglas 許容差値=0~1000ぐらいにした。
本当はchaikenでやりたかったケド、許容差値をどれだけ広げてもメモリが足りないため
douglas_redeductin(0-100)でやってみた。
だいぶ好い感じ だけど いつものごとく属性テーブルがくっついてこない。
で v.db.addtableしてみる。でも、元もテーブルの属性はついてこない。。。(涙)
Postgres:流域界⑤
流域界と土地利用データを重ね合わせてみる。
流域界:新測地系
土地利用:旧測地系
2ピクセルぐらいズレてる。。。。
流域界のデータを旧測地系に変える。
①元になるシェープファイルを新測地系(JGD2000)で読み込む。
②対象ファイルを右クリックして「名前をつけて保存」を選択。
流域界:新測地系
土地利用:旧測地系
2ピクセルぐらいズレてる。。。。
流域界のデータを旧測地系に変える。
①元になるシェープファイルを新測地系(JGD2000)で読み込む。
②対象ファイルを右クリックして「名前をつけて保存」を選択。
③CRSを設定する。
④ユーザー定義の座標を作る。ここに
+proj=longlat +ellps=bessel +towgs84=-146.336,506.832,680.254,0,0,0,0 +no_defs
新測地系⇒旧測地系に変換するらしい。
⑤出来上がったシェープファイルをインポート♪
Postgres:流域界④
よーーーーく見ると流域界・非集水域(面)データのジオメトリが落ちてる。
落ちてるポリゴンだけ抜き取ってみる。
GRASSで[v.extract]
OSgeoの方々のお蔭で無事解決。
pgAdminには大きなジオメトリは表示されないらしい。。。
コンソールで確認すると、ちょーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー長い
ジオメトリを見ることが出来ました。
PostgersqlではなくpgAdminの制限でした。
落ちてるポリゴンだけ抜き取ってみる。
GRASSで[v.extract]
QGISで見てみよう。
そんなに大きくもないし複雑でもない。。。
OSgeoの方々のお蔭で無事解決。
pgAdminには大きなジオメトリは表示されないらしい。。。
コンソールで確認すると、ちょーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー長い
ジオメトリを見ることが出来ました。
PostgersqlではなくpgAdminの制限でした。
登録:
投稿 (Atom)