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

労働時間を求める関数

http://q.hatena.ne.jp/1259678627 以前に作成したユーザー定義関数は、勘違いの部分があったので大幅に変更しました。 作成したのは4つのユーザー定義関数です。 定時時間・・・所定労働時間と法定内残業時間の合計です。最大が8時間であり時給×1となりま…

回答の修正

http://q.hatena.ne.jp/1260079584 土曜日の不足分を修正しておきました。 過去に長いコードを回答欄に書いて表組が崩れたのは1回しかないのに、2回目が起きてしまいました。 Sub 表の作成() Dim myDate As Date Dim myDate2 As Date Dim myMonth As Strin…

ジャマイカ、まとめ

http://q.hatena.ne.jp/1256711755 結局のところ今の時点でプログラム的に全ての回答を出せるのは自分の回答しか無かったようです。質問者様にはドンマイとだけ言いたい。 Mookさんのパターン表に抜けている部分は手作業で追加するのは容易でも、その「あら…

ジャマイカ2

これでたぶん完成。 Option Explicit Public Type Enzan s As Double n As String k As Integer End Type Private r As Long Private hai() As String Private c1 As Integer Sub Shoot() Columns("B").Value = "" Dim c For Each c In Array("Num1", "Num2"…

ジャマイカ

http://q.hatena.ne.jp/1256711755 ここ数日ずっと考えてたVBAのマクロがやっとこ形になりました。 回答欄に長々とそのコードの説明とその考え方を書くのも無粋なのでこちらにまとめます。 最初そんなに難しいマクロだとはぜんぜん思いませんでした。 数時間…

単純に左側が空白かどうかで1列目を判断。 (A列は左が空白じゃないので除外) 保存フォルダの行にフルパスが入っているとして、該当フォルダが無ければ作成。 Sub Macro() Dim r As Long Dim c As Long Dim FSO Dim TS Dim filName As String Dim foldPat…

Private Const maxNum As Integer = 6 Private n(maxNum) As String Sub test() Dim i As Integer Dim j As Integer n(0) = "a" n(1) = "b" n(2) = "c" n(3) = "d" n(4) = "e" n(5) = "f" For i = 1 To maxNum - 1 For j = 1 To maxNum / 2 Cells(j, i).Valu…

実際のコンピュータで出力された結果を眺めていて Excelのワークシートを使って数える方法を思いついたので紹介します。 まず、次のような表を作ります。 A B C D E 1 1 5 25 125 625 2 2 10 50 250 1250 3 4 20 100 500 2500 4 8 40 200 1000 5000 5 16 80 …

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

http://q.hatena.ne.jp/1249286196 の質問の回答です。 抽出する場所を別ブックとして、データブックと同じ場所に検索結果.xlsという名前で保存するようにしました。 また、検索文字はインプットボックスで入力できるようにしました。 Sub Macro() Dim KeyWo…

後から考えてみると1年分とかたくさんの表を作るためには、もう一工夫必要。 それで数式を作り直してみます。 1人につき1年分の表を作る場合。 A B C D E F G 1 H21.7.4 1 2 3 4 5 合計 2 数式1 =A2 =A2+7 =A2+14 =A2+21 数式2 =COUNT(B2:F2) 3 A1セ…

http://q.hatena.ne.jp/1233530197 この質問でユーザー定義関数を作ってしまえばVBAからsplitを使えるなと思って作ってみます。 標準モジュールに貼り付けて実行してください。 Function mySplit(s As String, i As Integer) As String Dim tmp tmp = Split(…

http://q.hatena.ne.jp/1232766401 のb1.xlsがランダムの場合の質問の修正です。 Sub Macro1() Dim lastRow As Long Dim i As Long Dim wb As Worksheet Dim wc As Worksheet Dim r1 As Range Dim r2 As Range Set wb = Workbooks("b1.xls").Worksheets(1) S…