tipsとexcelに関するCherenkovのブックマーク (3)
-
操作の対象セル範囲が不定の場合 ここまでの解説では、操作の対象を﹁セルA1に﹂とか﹁セル範囲A1:C3に﹂などと簡単に決めてきました。もちろん解説なのですから、それは勘弁していただきたいのですけど、実際のマクロ作成では操作の対象を特定することに苦労するものです。操作の対象セルを、どう的確に特定するかが、VBAのビギナーとベテランで差が出るところでもあります。たとえば、次のようなデータを考えてみましょう。 このデータをマクロでクリアします。ただし、データが何行何列あるかは、そのときによって異なります。セルをクリアするにはRangeオブジェクトのClearContentsメソッドを使います。次のコードはセル範囲A1:D5をクリアします。 Sub Sample1() Range("A1:D5").ClearContents End Sub クリアすべきセル範囲の左上はセルA1です。したがって、セ
-
概要 ﹁VBA 高速化﹂で検索すると恐らく﹁配列化﹂みたいなキーワードが高確率で引っかかるんじゃないかと思います。 確かに有効な手段なのですが、VBA触り始めだとこの概念が掴めなかったりしませんか? (私の思考の問題かも知れないですが…。) 今回はその辺りを私なりに噛み砕いて綴っていきます。 本編 サンプルシート こんなシートがあったとします。 Rangeで範囲取得 ワークシートから任意のセル範囲を取得する時は、Rangeプロパティを使うよ。 Dim myRange as Range Set myRange = ActiveSheet.Range( "A1:C3" ) ' または Set myRange = ActiveSheet.Range( "A1", "C3" )
-
文字コード‥UTF-16LE︵BOM必須︶ 改行コード‥CRLF 区切り文字‥tab 出オチですが。 - 昨今は多言語に対応したフォームを作ってくれ、というオーダーもちらほらありますが、お客さんは管理画面からDLできるCSVをエクセルで開くわけで、何も考えて作らないとバリバリ文字化けします。 そういう時はエディタで開くとか、エクセルなんかではなくて、Open Officeとかで開くのが順当なんですがね、そんなちゃんとしたことが出来る方は滅多にいませんし。 Excelは当然ユニコード対応してるんですけど、なぜかUTF-8はちゃんと認識してくれない。 UTF-16とかいまさら誰がつかってんの︵内部コード用にはよくつかわれてますけど、ファイルフォーマットとしては、UTF-8が世界的にもデファクトちゃうの?︶という気がしますし、そもそもBOMがないとやっぱりコケるのが謎すぎる。 さらに、そのUTF
-
1