<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Microsoft Office Excel</title><link>http://www.sqljp.com/hotikisu/category/576.aspx</link><description>Microsoft Office Excelについて</description><managingEditor>ホチキス先生</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>ホチキス先生</dc:creator><title>エクセルのマクロで図形を操作する（４） – オートシェイプを消去する</title><link>http://sqljp.com/hotikisu/archive/2010/12/25/27143.aspx</link><pubDate>Sat, 25 Dec 2010 19:07:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2010/12/25/27143.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/27143.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2010/12/25/27143.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/27143.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/27143.aspx</trackback:ping><description>&lt;DIV class=entry&gt;
&lt;P&gt;ではエクセルのシートに作ったオートシェイプを消去するにはどうすればいいだろうか。オートシェイプを削除するには、deleteメソッドが使えるはずだ。試しに次の2つのマクロを作ってみよう。&lt;/P&gt;
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Sub smaile()&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 10, 20, 100, 100&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 120, 20, 100, 100&lt;BR&gt;End Sub 
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Sub delete()&lt;BR&gt;Sheet1.Shapes(1).delete&lt;BR&gt;Sheet1.Shapes(2).delete&lt;BR&gt;End Sub &lt;/P&gt;
&lt;P&gt;----------------------------------------------------------------
&lt;P&gt;最初のマクロでは、スマイルのオートシェイプを2つ作っている。これら2つのオートシェイプはそれぞれShapes(1)とShapes(2)という番号で管理されている。そして次のマクロでは、そのShapes(1)とShapes(2)に対して消去のDeleteメソッドを実行している。だが残念ながらこのマクロは、消去するときにエラーになる。ひとつめのシェイプを消去した後「指定したコレクションに対するインデックスが境界を越えています。」というメッセージが出るはずだ。なぜかといえば、Shapes(1)を消去したときに、自動的にShapes(2)がShapes(1)になってしまうからだ。そこで消去する順番は、まず数字の大きいShapes(2)を消去し、その次にShapes(1)を消去する、というようにすればいい。次のマクロは正しく動くだろう。 
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Sub smaile()&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 10, 20, 100, 100&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 120, 20, 100, 100&lt;BR&gt;End Sub &lt;/P&gt;
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Sub delete()&lt;BR&gt;Sheet1.Shapes(2).delete&lt;BR&gt;Sheet1.Shapes(1).delete&lt;BR&gt;End Sub 
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;あるいは次のように、Shapes(1)を二回消去する、というようにしてもうまく消去できる。&lt;/P&gt;
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Sub smaile()&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 10, 20, 100, 100&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 120, 20, 100, 100&lt;BR&gt;End Sub 
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Sub delete()&lt;BR&gt;Sheet1.Shapes(1).delete&lt;BR&gt;Sheet1.Shapes(1).delete&lt;BR&gt;End Sub 
&lt;P&gt;----------------------------------------------------------------&lt;/P&gt;&lt;/DIV&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/27143.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>Microsoft TechEd 2010 レポート - Day 2 - 3 - T4-304「Microsoft BIを支えるReporting Services &amp; PowerPivot～松本美穂のすぐに使えるBIシステム構築の技～」 </title><link>http://sqljp.com/hotikisu/archive/2010/08/28/27077.aspx</link><pubDate>Sat, 28 Aug 2010 19:58:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2010/08/28/27077.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/27077.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2010/08/28/27077.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/27077.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/27077.aspx</trackback:ping><description>&lt;P&gt;最も最初のバージョンからMicrosoft SQL Serverにかかわっており、名著「SQL Server 2000でいってみよう」など多くの技術書の著者松本美穂女史によるセッション。&lt;/P&gt;
&lt;P&gt;PowerPivot for Excelは、サーバー側の作りこみが不要な点がパワフル。インメモリアーキテクチャで高速なデータ処理が実現できる。64ビットCPUのパワーを十分に利用することができる。またExcelのデータ上限100万件を超えるデータも対応している。&lt;/P&gt;
&lt;P&gt;PowerPivotの概要が説明されたあと、実際にデモが行われた。画面に表示されたExcelのブックには、なんと一千万件のデータが格納されている。さらにこのテーブルをスクロールするのも高速で、まったくストレスなく表示される。これはたいへんな驚きだ。またパワーピボットの表示もすごく早く、グラフの追加や描画の更新もとても速い。このようなパフォーマンスを得られるのは、すべてインメモリで実行しているからである。したがってコンピュータのメモリが小さいと、このPowerPivotのパフォーマンスの恩恵を得ることはできない。&lt;/P&gt;
&lt;P&gt;PowerPivotで大量のデータを分析するとき、ExcelのPowerPivot自体は高いパフォーマンスで動作しても、データの更新には時間がかかるだろう。SQL Serverへの負荷もある。そこでPowerPivotを使う場合は、分析に必要なデータだけを選んで取ってくる設計をしなければならない。またデータベースの設計者としては、このようにユーザーがExcelで大量のデータを取れる時代になったことから、データベースのセキュリティにはこれまで以上に配慮しなければならないだろう。&lt;/P&gt;
&lt;P&gt;PowerPivot for SharePoint 2010では、分析レポートの共有とセキュアなデータ格納、バックグラウンドでのデータ更新のバッチ処理、Excel ServiceによるWebブラウザベースの共有、などがあげられる。PowerPivot for SharePointをインストールすると、テンプレートとしてPowerPivot Siteができる。管理はPowerPivot管理ダッシュボードで行う。&lt;/P&gt;
&lt;P&gt;SQL Serverの機能拡張はいろいろあるが、特にReporting Serviceは強力に進化している。特にSQL Server 2008 R2からは、Bingマップ連携、データバー、インジケーターなどデザイン面の拡張など大きく拡張された。このReporting ServiceによるBIシステムでは、共有データソース、共有データセット、共有レポートパーツを利用してレポート作成時間を短縮することができる。またレポートキャッシュまたはクエリキャッシュ、キャッシュの更新計画機能などキャッシュ機能を活用する。&lt;/P&gt;
&lt;P&gt;Microsoft TechEd 2010 Japan 公式サイト&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/teched/2010/"&gt;http://www.microsoft.com/japan/teched/2010/&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/27077.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>エクセルのマクロで図形を操作する（３） - オートシェイプに名前をつける</title><link>http://sqljp.com/hotikisu/archive/2010/07/19/27046.aspx</link><pubDate>Mon, 19 Jul 2010 10:07:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2010/07/19/27046.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/27046.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2010/07/19/27046.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/27046.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/27046.aspx</trackback:ping><description>&lt;P&gt;エクセルのシート上に作成したオートシェイプは番号がついているが、番号ではなく、オートシェイプに名前を付けて区別することもできる。例えばこんな具合だ。&lt;/P&gt;
&lt;P&gt;Sub smaile()&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 10, 20, 100, 100&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 120, 20, 100, 100&lt;BR&gt;ActiveSheet.Shapes(1).Name = "taro"&lt;BR&gt;ActiveSheet.Shapes(2).Name = "hanako"&lt;BR&gt;Sheet1.Shapes("taro").IncrementRotation (-20)&lt;BR&gt;Sheet1.Shapes("hanako").IncrementRotation (20)&lt;BR&gt;Sheet1.Shapes("taro").Adjustments.Item(1) = 0.5&lt;BR&gt;Sheet1.Shapes("hanako").Width = 160&lt;BR&gt;Sheet1.Shapes("hanako").Height = 160&lt;BR&gt;End Sub 
&lt;P&gt;&lt;A href="https://efmmuq.bay.livefilestore.com/y1mjOF3SdO4ubqrj47MVlDTyNGCWLqbbaT23gRkEItmkwiUDjDVlSSghbH1yRaLRg2eL5gmY9BwSMUGzPXanvjDgOlJ-ucarEMt4TZ6zfN1yeUlw5LbvcBwnWC86vjH2habVwtHjKpzQNSsKogRsSwB2g/excel_macro_002[3].png?download&amp;amp;psid=1" rel=WLPP&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=excel_macro_002 border=0 alt=excel_macro_002 src="https://efmmuq.bay.livefilestore.com/y1mdaa5ILiM6TyLQ2oLfiAHhEdw_6U6xjJKxzlmTbACKptDRI3BNMdPnfScCMLgVrb7TeXw4i6nO7pzIbzQWJBwVWT7Km3salTmcBdnDEfLEk6ptcJGZMWPQwGECziBrSliOwAIHVM4ke0lgyJxiymXUA/excel_macro_002_thumb[1].png?download&amp;amp;psid=1" width=453 height=314&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;(Fig.1 オートシェイプを2つ作成し名前を付けて角度や変形、大きさを変えた) 
&lt;P&gt;ここでは作成した2つのオートシェイプに「taro」と「hanako」という名前をつけている。「taro」に操作をするときはShapes("taro")、「hanako」に操作をするときはShapes("hanako")と記述して区別できる。ここでは「taro」を左に20度（つまり右に-20度）回転、変形を0.5、「hanako」は右に20度回転、幅と高さを160に拡大している。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/27046.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>エクセルのマクロで図形を操作する（２） - 作成したオートシェイプには番号がついている</title><link>http://sqljp.com/hotikisu/archive/2010/07/19/27045.aspx</link><pubDate>Mon, 19 Jul 2010 10:05:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2010/07/19/27045.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/27045.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2010/07/19/27045.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/27045.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/27045.aspx</trackback:ping><description>&lt;P&gt;エクセルのシート上に作成されたオートシェイプは連番で管理されている。たとえば次のようなマクロを作って実行する。結果はこんな具合だ。&lt;/P&gt;
&lt;P&gt;Sub smaile()&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 10, 20, 100, 100&lt;BR&gt;ActiveSheet.Shapes.AddShape msoShapeSmileyFace, 120, 20, 100, 100&lt;BR&gt;Sheet1.Shapes(1).IncrementRotation (-10)&lt;BR&gt;Sheet1.Shapes(2).IncrementRotation (10)&lt;BR&gt;Sheet1.Shapes(1).Adjustments.Item(1) = 0.5&lt;BR&gt;End Sub 
&lt;P&gt;&lt;A href="https://efmmuq.bay.livefilestore.com/y1moOBZZc1y5mGLwJT-22X53nbAoPXRLdjs17PEcBxjFMWxDqwC3AovUo34C_CNHgtsM5bezvNffXiYKAdB44MI5fnHbwZDBQ8X45M8k5k545DLePjt03ZqZha6hURajiAMBgggh2EvjTcGkr1H7m1Iyg/excel_macro_001[3]%20178BD684.png?download&amp;amp;psid=1" rel=WLPP&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=excel_macro_001 border=0 alt=excel_macro_001 src="https://efmmuq.bay.livefilestore.com/y1mnnA86rQFxAm3J5VzP4eG7Q8r5sr3RbHKRGaxfDjSBXU9C7T9HUkdyIdNe-yTVCeBBFjEMNMr3PnCkLlLjHQrjsgS4JR5ZBchBeZF-xpLodZo5DBXh07YMsUpzzJ3ZWKddvNaaRJll-cXF_8LxJKxBg/excel_macro_001_thumb[1].png?download&amp;amp;psid=1" width=382 height=252&gt;&lt;/A&gt;&amp;nbsp;&lt;BR&gt;(Fig.1 マクロによって作成した2つのオートシェイプ) 
&lt;P&gt;ここでは2つのオートシェイプを作っているが、それぞれ作成された順番でShapes(1)、Shapes(2)という連番で管理されている。最初に作成したオートシェイプは図の左側のもので、こちらはShapes(1)、次に作成したオートシェイプが右側で、Shapes(2)である。Shapes(1)を左に10度（つまりマイナス10度）回転させ、Shapes(2)を右に10度回転させる、そして右側のShapes(1)については、Adjustment.Itemの値を変えて変形している。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/27045.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>エクセルのマクロで図形を操作する（１） - マクロでオートシェイプを作成する</title><link>http://sqljp.com/hotikisu/archive/2010/07/19/27044.aspx</link><pubDate>Mon, 19 Jul 2010 10:01:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2010/07/19/27044.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/27044.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2010/07/19/27044.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/27044.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/27044.aspx</trackback:ping><description>&lt;P&gt;あることを思い立ち、エクセルのマクロで作ってみたものがある。そのため、図形を操作するマクロについて調べている。&lt;/P&gt;
&lt;P&gt;エクセルのマクロは習得が簡単だ。その理由のひとつに「マクロの記録」がある。マクロで自動化したい操作を「マクロの記録」を実行してマウスやキーボードで操作すると、その操作がマクロとなって記録される。これはいわばユーザーの操作を記録しているわけで、このマクロを分析し加工すれば思いのままに操作を自動化できる。&lt;/P&gt;
&lt;P&gt;例えばMicrosoft Excel 2003でオートシェイプを作り、形を変化させ、回転する、という操作をマクロに記録すると、次のようなマクロができる。&lt;/P&gt;
&lt;P&gt;------------------------------------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;Sub Macro1()&lt;BR&gt;'&lt;BR&gt;' Macro1 Macro&lt;BR&gt;' マクロ記録日 : 7/19/2010? ユーザー名 :&lt;BR&gt;' 
&lt;P&gt;'&lt;BR&gt;??? ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, 124.5, 87.75, 126.75, 53.25).Select&lt;BR&gt;??? Selection.ShapeRange.Adjustments.Item(1) = 0.5&lt;BR&gt;??? Selection.ShapeRange.IncrementRotation 35.28&lt;BR&gt;End Sub 
&lt;P&gt;------------------------------------------------------------------------------------------------------------------&lt;/P&gt;
&lt;P&gt;ActiveSheet.Shapes.AddShape()によってシートにオートシェイプが作られる。()の中には5つの引数があり、最初のmsoShapeRoundedRectangleがオートシェイプの種類、続く4つの数字はオートシェイプの大きさと位置を決めている。これらの数値を変更したマクロを作り実行すると、引数は「オートシェイプの種類、横の位置、縦の位置、横の大きさ、縦の大きさ」であることがわかる。 
&lt;P&gt;Selection.ShapeRange.Adjustments.Item()はオートシェイプの変形だ。オートシェイプの中には黄色の菱形アンカーポイントを持つものがあり、変形することができる。 
&lt;P&gt;Selection.ShapeRange.IncrementRotationはオートシェイプの回転であり、右回りの回転角度で指定する。右回りに90度回転させるなら値は「90」だ。 
&lt;P&gt;ここで自動的に作成されたマクロでオートシェイプを作ることができるが、より実際的にオートシェイプを操作するためには、次のように書くこともできる。 
&lt;P&gt;●オートシェイプを作成する 
&lt;P&gt;ActiveSheet.Shapes.AddShape msoShapeRoundedRectangle, 10, 20, 50, 60 
&lt;P&gt;●作成したオートシェイプを右に5度回転させる 
&lt;P&gt;Sheet1.Shapes(1).IncrementRotation (5) 
&lt;P&gt;●作成したオートシェイプの横の大きさを100に変える 
&lt;P&gt;Sheet1.Shapes(1).Width = 100 
&lt;P&gt;●作成したオートシェイプの塗りを半透明化する 
&lt;P&gt;Sheet1.Shapes(1).Fill.Transparency = 0.5 
&lt;P&gt;●作成したオートシェイプの変形を0.5にする 
&lt;P&gt;Sheet1.Shapes(4).Adjustments.Item(1) = 0.5&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/27044.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>
