[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 09/20 10:57 / Filesize : 218 KB / Number-of Response : 791
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA質問スレ Part13



1 名前:デフォルトの名無しさん mailto:sage [2009/09/30(水) 12:25:04 ]
過去スレ
01 pc11.2ch.net/test/read.cgi/tech/1054356121/
02 pc11.2ch.net/test/read.cgi/tech/1168308855/
03 pc11.2ch.net/test/read.cgi/tech/1180192018/
04 pc11.2ch.net/test/read.cgi/tech/1189814602/
05 pc11.2ch.net/test/read.cgi/tech/1197448064/
06 pc11.2ch.net/test/read.cgi/tech/1205231499/
07 pc11.2ch.net/test/read.cgi/tech/1212587819/
08 pc11.2ch.net/test/read.cgi/tech/1219673793/
09 pc11.2ch.net/test/read.cgi/tech/1228372971/
10 pc12.2ch.net/test/read.cgi/tech/1235332603/
11 pc12.2ch.net/test/read.cgi/tech/1241885130/
12 pc12.2ch.net/test/read.cgi/tech/1247566074/

66 名前:デフォルトの名無しさん [2009/10/04(日) 22:59:56 ]
>>65
解決しました!!65さんの言っているとおりでした!

すいません。私が書いてなかったのが悪かったんですが、
"貼り付け用"というセルは表の一番下にあるんです。

一度"りんご"のセルがあって、実行されちゃうと、
もう"貼り付け用"というセルがなくなってしまうことが原因でした!

なので、Forを一番下から上にあがるような構文を書いたら
エラーが出なくなりました!

ありがとうございました!!

67 名前:デフォルトの名無しさん [2009/10/04(日) 23:15:00 ]
62です。

もう一つ教えてもらってもいいですか?
もし"りんご"というセルがなかったら、
"貼り付け用"と書かれたセルとその隣のセルを削除したいのですが、
どのように書けばいいですか?

elseを使うんだろうなぁと思って、

  Else
  Columns(1).Find("貼り付け用").Resize(, 2).Delete shift:=xlShiftUp

を入れてみたんですが、エラーになっちゃいました。。。

お時間があれば教えてください!よろしくお願いします。


68 名前:デフォルトの名無しさん mailto:sage [2009/10/04(日) 23:19:19 ]
あとは自力で頑張れよ・・・

69 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:11:51 ]
そんなこといわずにもう一息っ!

70 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:19:37 ]
俺はfindの時にはsetを使ってるんだけど、説明するのも大変そうだなぁ・・・。

見つかりませんってエラーが出るんだから、on error goto で飛ばしたら?

71 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 00:56:27 ]
>>67
> Columns(1).Find("貼り付け用").Resize(, 2).Delete shift:=xlShiftUp
上の1行だけ試しに実行させたら正常に動いたので、
If〜Else〜End Ifの構文が正しく書けていない気がします。下はサンプル。

Set A = Sheets("Sheet1").Columns(1).Find("りんご")
Set B = Sheets("Sheet1").Columns(1).Find("貼り付け用")

'-- 「B is Nothing」な場合の処理は割愛

If A Is Nothing Then
B.Resize(, 2).Delete shift:=xlShiftUp
Else
Set A = A.Resize(, 2)
A.Cut B
End If

72 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 01:10:09 ]
>>54
エクセル97で試したけどエラーにならないな
VBなら言語仕様的にはエラーになどならないはずだがな、間違った演算してるわけじゃないしな

a=1が真の場合は分り易く8ビットで表現すると11111111となる
次に11111111と00000010(十進数の2)をor演算すると11111111となる、
次に11111111と00000011(十進数の3)をor演算すると11111111となり、
すべて演算した結果は真となり、エラーにはならない

a=1が偽の場合は分り易く8ビットで表現すると00000000となる
次に00000000と00000010(十進数の2)をor演算すると00000010となる、
次に00000010と00000011(十進数の3)をor演算すると00000011となり、
すべて演算した結果は真となり、エラーにはならない

よってif a=1 or 2 or 3 thenの条件式は必ず真になるでしょ

73 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 01:26:21 ]
最初の設計がだめなんじゃないの?

りんごが無かったら削除するんじゃなくて
りんごがあったら追加する仕様の方がいい希ガス

74 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 01:30:23 ]
?a=1 or 2 or 3
3

3と計算されるね



75 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 02:06:50 ]
え?

76 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 03:18:19 ]
λ

77 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 11:59:57 ]
>>74
Dim a
a = 1
MsgBox a = 1 Or 2 Or 3
これ、たしか最初は3になったはずだが、今は-1にしかならん。
おれの記憶違いかな?

それにしても
MsgBox 1 Or 2 Or 3 Or 4
これが7になるのはどうして?

78 名前:77 mailto:sage [2009/10/05(月) 12:04:44 ]
自己レスだが7になる理由は分った。

79 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 12:44:27 ]
>>36はプログラマとして優秀さを感じるな
>>38は人の程度が知れる

80 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 13:11:30 ]
(;゚д゚)ァ

81 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 14:19:24 ]
>>77
とりあえず And、Or、Xor は論理演算子じゃなくてビット演算子だと覚えておけ


a が 1 じゃない時
a = 1 Or 2 Or 3 ⇒ False Or 1 Or 2 Or 3 ⇒ 00000000 Or 00000001 Or 00000010 Or 00000011 ⇒ 00000011 ⇒ 3

a が 1 の時
a = 1 Or 2 Or 3 ⇒ True Or 1 Or 2 Or 3 ⇒ 11111111 Or 00000001 Or 00000010 Or 00000011 ⇒ 11111111 ⇒ -1


1 Or 2 Or 3 Or 4 ⇒ 00000001 Or 00000010 Or 00000011 Or 00000100 ⇒ 00000111 ⇒ 7

82 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 16:16:05 ]
>>81
>>78書いた時点で分ってるよ。

83 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 16:39:52 ]
>>81
a が 1 じゃない時
×a = 1 Or 2 Or 3 ⇒ False Or 1 Or 2 Or 3 ⇒ 00000000 Or 00000001 Or 00000010 Or 00000011 ⇒ 00000011 ⇒ 3
○a = 1 Or 2 Or 3 ⇒ False Or 2 Or 3 ⇒ 00000000 Or 00000010 Or 00000011 ⇒ 00000011 ⇒ 3
a が 1 の時
×a = 1 Or 2 Or 3 ⇒ True Or 1 Or 2 Or 3 ⇒ 11111111 Or 00000001 Or 00000010 Or 00000011 ⇒ 11111111 ⇒ -1
○a = 1 Or 2 Or 3 ⇒ True Or 2 Or 3 ⇒ 11111111 Or 00000010 Or 00000011 ⇒ 11111111 ⇒ -1

=演算子はOr演算子よりも優先順位が高いのでa = 1が演算されたあとにOrの演算が行われる

84 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 17:23:56 ]
>>81
こまったことに2007のエクセルのヘルプには論理演算子と書いてあるんだがな
実際は論理演算も算術演算も区別がない。全部算術演算してる

問題の本質は、算術演算か論理演算かじゃなくて、型の優先順位の問題

Orで型が一致しない場合、booleanより他の型の方が優先順位が高い
おそらくこの式ならIntegerで値が帰っている
もしbooleanの方が優先順位が高ければ、2と3がbooleanに変換されるので
a = 1 Or 2 Or 3 ⇒ a = 1 Or True Or True ⇒ True
True=-1なので、常に-1が帰るはず


型がいい加減な言語の弊害だな




85 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 17:45:45 ]
ビット演算の便利な使い方のケースってどんなものある?

86 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 17:52:54 ]
>>85
一般論で言えばBoolean型の配列よりはビット演算の方がメモリが節約できてキャッシュの使用効率が上がるし
条件判断も高速になる。
可読性は落ちるけど昔からよく使われる手法だから、知ってないと人のソースが読めなかったりする。

87 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 19:49:26 ]
vbsの質問ってここでいいですか?

88 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 20:24:16 ]
vbaから呼ぶならある程度は良いと思うけど。個人的に。

89 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 20:31:15 ]
vbaとあまり関係ないので別スレで質問してみます

90 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 20:31:50 ]
>まぁ今時はコンパイラが大分やってくれるから高級言語ならあまり関係ないけど
組込とかで機械語表記するときゃ今でも普通に使うよ
ハードに近づけば近づくほど限界性能を引き出せるけど分かりにくくなる
とりあえずVBAって時点で、変な表記はせずに可読性に特化したコードを書くべきだと思う

91 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 20:38:55 ]
速度厨はその辺が気に食わないみたいで

92 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 20:43:24 ]
VBAに速度求めてもな。
手作業の自動化くらいに使ってりゃいいんだよ。自分でやるより早いだろ。

93 名前:デフォルトの名無しさん [2009/10/05(月) 21:02:07 ]
>>85
ハード叩くときの設定なんかで使う
#ドライバー作る時なんかに必要なときがある(あまりいないと思うけど)

94 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 21:19:46 ]
VBAでドライバ作るやつはいないだろ
VBAでビット演算を使って便利なケースを語れ



95 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 21:23:14 ]
ビット演算の宿題が出たとき

96 名前:デフォルトの名無しさん mailto:sage [2009/10/05(月) 21:35:17 ]
>>94
フォームやシート上にcheckboxが多数ある場合のON/OFF判定とかは?

97 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 02:16:02 ]
それにしても SQL に bit 演算ないのは理不尽だよなぁ

98 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 02:24:59 ]
んなこたない

99 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 02:40:06 ]
あるの?

100 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 06:53:07 ]
奇数かどうかを判定するのにビット演算使ってみたが12%しか速くならんね。
If i Mod 2 = 1 Then

If i And 1 Then

偶数かどうかを比較したらビット演算が45%速かった。
If i Mod 2 = 0 Then

If i And 0 Then

101 名前:100 mailto:sage [2009/10/06(火) 06:58:23 ]
すまん、偶数かどうかの比較はまちがってるな。

102 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 07:11:08 ]
ちなみに偶数かどうかは
If j And 1 = 0 Then

103 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 07:34:47 ]
If not (i And 1) Then

104 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 07:50:32 ]
>>103
それも書こうと思ったが、たしかにその方が少し速いね。



105 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 07:51:33 ]
背伸びしてビット演算するレベルじゃないな。

106 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 07:54:49 ]
ループの回数を多くして計りなおしたら>>102の方が速かったわ。

107 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 07:56:12 ]
その程度は普通はMod使うよなぁ。

108 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 08:02:23 ]
WorksheetFunction.IsEvenを使う俺様は最強





















じゃねーな。最低だ。

109 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 08:15:34 ]
>>108
よく見る似たような最低なものにWorksheetFunction.IsNumberがある。
他にもあったな。

110 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 08:29:22 ]
質問スレがヲタスレ化してる・・・

111 名前:デフォルトの名無しさん [2009/10/06(火) 09:39:21 ]
速度厨はアセンブラでもやっとけ、アフォ

112 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 09:42:03 ]
>>100
奇数の判定はこれでいいんじゃないか?
If i Mod 2 Then

113 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 09:45:17 ]
俺は速度をことさら求めない派だが、やたら速度を否定するやつのソースって汚いのが多いよな。

114 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 09:51:38 ]
>>112
普通はModだが、Andでビット演算で判定すればほんの少し速くなるって話だろ? 



115 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 09:59:37 ]
>>113
お前の美しいソースを見てみたいもんだな。


116 名前:デフォルトの名無しさん [2009/10/06(火) 10:07:27 ]
こんにちは。あたしはカウガール。
AAとして成り上がるため、スレを巡る旅をしています。
    __
  ヽ|__|ノ    モォ
  ||‘‐‘||レ   _)_, ―‐ 、
  /(Y (ヽ_ /・ ヽ     ̄ヽ
  ∠_ゝ  ` ^ヽ ノ.::::::__( ノヽ
   _/ヽ      /ヽ ̄ ̄/ヽ

117 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 10:27:45 ]
>>114
いやそうじゃなくて「= 1」という比較演算が無駄じゃないかって指摘。
このおかげで遅くなってる希ガス

If i Mod 2 = 1 Then
と比較するなら
If i And 1 = 1 Then
とするべきだろうし、

If i And 1 Then
に書き方を合わせるなら
If i Mod 2 Then
と比較しないと不公平じゃないかなーって思った。それだけ。

118 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 10:35:49 ]
>>117
たしかに公平にやるならそうだよな。
公平にやってもビット演算が少し速いみたいだけど、人に見せるコードならIf i Mod 2 = 1 Then だな。


119 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 12:31:35 ]
おまえら仕事しろよ

120 名前:デフォルトの名無しさん [2009/10/06(火) 19:37:14 ]
速度の事は別スレ建てて、そこでやれ

121 名前:デフォルトの名無しさん mailto:sage [2009/10/06(火) 19:50:09 ]
俺はわからなかったよ!

122 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 02:02:48 ]
お前ら、奇数ってマイナスもありなんだぜ
i Mod 2 = 1 ではマイナスの奇数が判定できない時点で失格

123 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 03:32:56 ]
何の問題もない
たとえば4bitなら
-1 = 1111
-2 = 1110
-3 = 1101

124 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 07:11:14 ]
>>123
ー3 mod 2 = 1 になった?



125 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 07:24:01 ]
yes we can

126 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 08:52:58 ]
>123

天然w

127 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 09:11:24 ]
>>122
すみませんねぇ、あいにくマイナス志向じゃないもんでね。
じゃぁIf i Mod 2 <> 0 Thenならあなたのおきにメスでしょうか?

128 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 09:27:47 ]
ド素人にはよくあることw

129 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 09:50:25 ]
ちなみに
If i Mod 2 Then
なら負数でも問題ないんだが

130 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 10:48:04 ]
ー3 mod 2 = 1
が偽になる環境って
ー(3 mod 2) = -1
と解釈されてるんだろ
((ー3) mod 2) = 1
と書けば問題無し

131 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:08:36 ]
>130

天然w

132 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:17:12 ]
Modで盛り上がってるところすみませんが、四捨五入ってVBAに関数ある?
Roundは微妙に違うし。

133 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:24:05 ]
>>132
ない
数式を工夫したり、関数を自作する必要がある
またはWorksheetFunction.Round

134 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:26:43 ]
>>130
キミはまず、とりあえずマイナス記号を入力する方法から勉強しようか



135 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 11:27:20 ]
は-い(;゚д゚)ァ

136 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 13:37:07 ]
>>133
一応VBAにもRoundって関数がある
まあ、これ使うと思わぬ結果が出ることもある

自作するなら、基本的には0.5足して切り捨てなんだが
これもマイナスのときどうするか考えると結構じゃまくさい

137 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 14:13:01 ]
floor

138 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 15:44:12 ]
>>136
ちゃんと最初から読みなさい
質問者はVBAのRoundではだめなことがわかった上で、どうすればいいか質問してる
VBAのRound関数とワークシート関数のROUNDは機能が異なるのは既知

139 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 16:17:08 ]
VBAのRoundも立派な四捨五入ですが。

140 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 16:50:28 ]
ttp://q.hatena.ne.jp/1154589462
を参考に、ExcelでSELECTを使えるようにしたのですが、うまくいきません。
データベースのテーブルの見出しを変更すると、きちんとした値を返しません。
デフォルトのIDとNAMEでは正常に値を取得できます。
具体的には、
Sheet2を以下のようにして、
| A | B
1 | ID | CATEGORY1
2 | 1 | a
3 | 2 | b
4 | 3 | c
Sheet1のA1に「3」を入れ、
A2に「=execsql("select CATEGORY1 from [Sheet2$] where ID = "&A1」と入力。
A2には値のエラーが返される。

どのあたりが問題でしょうか。

OS:WindowsXP
Excel ver:2003 (11.8307.8221)

141 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 17:15:52 ]
ExecSQL = rs("NAME").Value

これを変更した?

142 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 17:19:59 ]
>141
見落としていました。
ありがとうございます。

143 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:14:31 ]
エクセルで指定セル内に文字を入力中、別のセル内にリアルタイムに
バイト数を表示させることはできるのでしょうか。
教えてください、エロい人。

144 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:25:56 ]
>>143
無理



145 名前:デフォルトの名無しさん [2009/10/07(水) 18:41:44 ]
すみません。
すごく初歩的なことなんですが、
列が縦でrow、行が横でcolumですよね?
A5だとAが列で5が行ってことになりますよね?
A5セルからA10セルまでをループさせたいときに、
5や10の値の定数をrowみたいな名前で宣言してるのを見たんですが、
これってcolumじゃないんですか??
書籍なので間違いではなさそうなんですが・・・。
A列B列、C列・・・
5行、6行・・・
ですよね?

146 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 18:50:02 ]
rowが行、colum列
辞書で調べてみ

147 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:12:00 ]
>>139
違うんじゃねーの?
5は捨てたり入れたりだもんな。
Round(1.5)もRound(2.5)も同じだろ?

148 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:29:34 ]
>>145
>>146の方の回答が全てだと思いますが、
下のExcel関数をいくつかのセルで試してみれば、理解しやすいかもしれません。

【関数】
=ROW()   :この関数が入力されている行の行番号を調べます。
=COLUMN() :この関数が入力されている列の列番号を調べます。

149 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 19:31:05 ]
いやでき・・・どうだろ
ループでバインドするなりキーイベントで捕捉するなり
フォームのTxtボックスとかなら普通に出来るけど、k
セル入力中ってどうだっけ

150 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:49:33 ]
Excel2007

正しい言い方が判らないので上手い事伝わるかどうか…なんですけど。

フォーム上にコマンドボタンを縦に5つ貼りつけています。
エンターキーを叩いた時、初期状態では一番上のボタンのマクロが実行され
ますが、これを3番目のボタンのマクロが実行される様に変えたいです。

テキストボックスとかだったらタブオーダーを設定すれば順番を指定できま
すけど、コマンドボタンについて同一フォーム上で最優先のものを指定する
事出来ますか?


151 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:51:48 ]
>>149
セルはテキストボックスか何かを継承してるはずなんで、
ハンドルさえ取得できればなんとかなる可能性はあるけど、
かなり大変じゃないかと思う。
それにバージョンごとに方法が違ってくると思う。
たぶんだけど2007が一番やりやすそうな気がする。

入力途中のキーイベントはVBAには存在しないので
自前でフックする必要がある。

152 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:54:47 ]
>>150
コマンドボタンにもタブオーダーはあるよ

153 名前:デフォルトの名無しさん mailto:sage [2009/10/07(水) 20:58:42 ]
>>145
A1セルの場合
A=横=列=Column
1=縦=行=Row

154 名前:150 mailto:sage [2009/10/07(水) 21:12:30 ]
>>152
プロパティのTabIndexをいじってみたら希望道理になりました。
どうもお騒がせしました m(_ _)m



155 名前:デフォルトの名無しさん [2009/10/07(水) 23:40:36 ]
西暦(2000年以降)年を入力したとき、その1年間の祝日の祝日名、月日及び曜日をイミディエイトウインドウに
表示するプログラムで、サブルーチンプロシージャまたは関数プロシージャを3つ利用しなくてはなりません。

ひたすらサイトを検索したのですが、見つかりませんでした。
全く手が出せず、困っています。どなたか教えてください。よろしくお願いします。




156 名前:デフォルトの名無しさん [2009/10/08(木) 00:06:09 ]
155です。
Excel2007を使用しています。

157 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 00:28:45 ]
>>155
検索すると結構、マクロ、祝日関数あるよね
ダウンロードしてそのソースをみて
考えればいんじゃない
解説してるサイトもあった気がする

158 名前:デフォルトの名無しさん [2009/10/08(木) 00:32:56 ]
155です。ありがとうございます。
祝日判定や、日にちを入れて表示させるものは
見つかったのですが、祝日名を表示させるものは
ひとつしか見つからず、ダウンロードしても
マクロは見られませんでした…

159 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 00:38:20 ]
>>155
祝日名を表示させるコードの一例が載っています。
ttp://www.h3.dion.ne.jp/~sakatsu/holiday_logic.htm#VBA

160 名前:デフォルトの名無しさん [2009/10/08(木) 00:45:27 ]
先ほど参照していたのですが、
kt関数は使ったことがなく、わかりませんでした…。


161 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 01:36:09 ]
>>155
質問の意図がちょっとわからんな。
そういう関数を作れっていう宿題なのか、どこかから手に入れたマクロの使い方を知りたいのか。

ちなみにkt関数は肝心の部分がプロテクトかかってて見えないんじゃなかったっけ?

162 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 13:09:35 ]
全くの初心者の質問なのですが、
ttp://www.matsumae.hokkaido-c.ed.jp/02school/kyouka_01.pdf
このサイトにある例13の問題の、
ex13 上の例13のプログラムを参考にして,自然数Nを入力したとき,
Nの約数の個数を求めるプログラムを,次の手順で作れ。
変数sを準備し,N以下の自然数で割り切れたとき,sに1を加える。
これのやり方が全くわかりません。
どなたか簡単に教えてくれないでしょうか。

163 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 13:45:39 ]
>>162
宿題スレにいけ。ぼけ。

Sub test()
Dim inputNum As Integer
Dim count As Integer
Dim divNums As Integer

inputNum = InputBox("整数入力してね")
For count = 1 To inputNum
If inputNum Mod count = 0 Then
divNums = divNums + 1
End If
Next

Debug.Print divNums
End Sub

ちなみにサンプル例が間違えてるからなw
松前高等学校のプログラム担当の先生に言っといて。

164 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 14:11:18 ]
>>163

ありがとうございます。



165 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 15:16:46 ]
これか
pc12.2ch.net/test/read.cgi/tech/1200989025/115-


166 名前:デフォルトの名無しさん mailto:sage [2009/10/08(木) 16:01:04 ]
>>143
入力したキーのフックに使えるAPI関数があるにはある
SetWindowsHookEx

恒常ループを設定して

多分出来ないんだろうが






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<218KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef