2010-01-01から1年間の記事一覧

意外と知らないExcelの罠

仕事で使っているワークシートがありまして、入っている数式を上書きしたらわかるように チェックするためのプログラムを作ってありました。 チェックでは二方向から合計したセルを比較することで一方が間違っているかがわかるというものです。 ところがこの…

http://q.hatena.ne.jp/1290914062 もう終わった質問のようだけど自分だったらこういう回答になるかな。 まず、セルに入力状態の時にマクロを実行するのは不可能。 それでセルを選択するときに右のセルの文字列をクリップボードにコピーし、 マクロではなくC…

VBAから一括してマクロを削除するコード 調べるとそのまま使えるコードがありました。 http://chaichan.web.infoseek.co.jp/vbtips/VBMemo2006081403.htm ※ セキュリティ設定と参照設定は必要。 Sub Macro() Dim objVBCOMPO As Object For Each objVBCOMPO I…

住所分割

http://q.hatena.ne.jp/1283352623 面白そうなので、VBAでZIPJISを使った住所分割をしてみる。 ZIPJISを解凍すると、ZIPJIS9B.K3というファイルがCSVのデータのようなので、 このファイルを実行させるエクセルファイルと同じ場所に置く。 次に以下のコードを…

前回はユーザー定義関数を作ろうとして失敗したわけですが、 VBAを使わずにワークシートだけで結果を求める方法があることに気づきました。 その方法とは、ずばり循環参照です。 Excelで循環参照を使う為には、反復計算の上限を決めておかなくてはいけません…

http://q.hatena.ne.jp/1282264337 この質問のコメントで書いた再帰を使った方法を考えてみる。 Sub test() Debug.Print myEval(Range("A2"), Range("B2"), Range("C2"), Worksheets("Sheet2").Range("B1")) End Sub Function myEval(rA As Range, rB As Ran…

http://q.hatena.ne.jp/1281145035 実行したいキャラクターのシートをアクティブにして、抽出()を実行すると 各ジャンル☆最大のアイテム以外を非表示にするマクロです。 非表示にしたアイテムをもう一度表示するには、全表示()を実行してください。 ※処…

1列目(AAとか)は数字ということですが、001ということは書式が文字列に なっているということになりますかね。 とりあえず、その場合でも動くようにしておきました。 横方向のソートをどうするか迷いましたが、最終3列を作業列にして縦に並べて 処理の早…

人力検索はどうして失敗したか

・利用者の少ないはてなアイデアにいつまでも頼ってしまった 会社はシステムを提供して後は利用者の使い方次第であるというのは無責任な話です。それで利用者から会社への働きかけとしてはてなアイデアが考えられましたが、実際はてなアイデアを利用したユー…

人力検索のユーザー数の推移

いつの頃からか末期的過疎化と言われるようになってしまった人力検索ですが、実際どうなのかというのはすごく興味のあることでした。そんなときはてなハイクでid:Yoshiya さんの集計したグラフを拝見する機会があり、そのグラフが人力検索のシステムの変更や…

HTMLの表組を作るマクロ

http://q.hatena.ne.jp/1277360031 こちらの質問ではExcelの表組をそのままHTMLの表組にするマクロを回答しました。 その発展形として機能を追加したものです。 枠組み 背景色 文字色 アラインメント リンク セル幅と高さ に対応させました。 色についてはid…

縦位置が中央揃えでも上詰めでもうまく行くように修正。 下に余分な改行がついていても削除して対応するようにもしようとしたけど、 均等割付の場合うまくいかないのでやめました。 Sub 画像挿入() Const picHeight As Double = 100 Const picWidth As Doubl…

Excel用のアドインを調べてみたのですが、いいのが無かったので作成しました。 以下の http://jfly.iam.u-tokyo.ac.jp/colorset/ 推奨配色セットをExcelのカラーパレットに適用するマクロです。 ※Excel2007はカラーパレットの仕組みが違うのでExcel2003まで…

もっと簡単だったか

http://q.hatena.ne.jp/1271889995 改めて考えてみるともっと簡単でよかったので書いておきます。 Sub CangePoint() 'ポイントを変える文字列を指定してください。 Const key As String = "abc" 'ポイントを指定してください Const fontSize As Integer = 14…

Sub 表の作成() Dim myDate As Date Dim myDate2 As Date Dim myMonth As String Dim i As Integer Dim check As Boolean Dim check2 As Boolean Dim lastSun As Integer If Selection.Column <> 1 Then Exit Sub If IsDate(Selection.Value) Then myDate = …