Excel VBA 質問スレ Part19

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2011/08/01(月) 00:20:44.24
>>950
Callを使わないなら括弧で括らない。
何かそんな話をこのスレでずっと前に言ってた様な・・・
まぁ>>951の通りでいいと思う
953デフォルトの名無しさん:2011/08/01(月) 00:24:39.54
>>952
ttp://home.att.ne.jp/zeta/gen/excel/c04p11.htm

こことか読んでみるといいと思うぞ
954デフォルトの名無しさん:2011/08/01(月) 07:40:27.86
自分は引数が無いSubプロシージャを呼び出す時に
明示的にCallを書くことがある位だなあ。
識別子だけで浮いているのが気持ち悪いので。
955デフォルトの名無しさん:2011/08/01(月) 12:21:00.71
>>932
場合による
「一般的」は存在しない
956デフォルトの名無しさん:2011/08/01(月) 12:48:21.55
迷ったらDouble
957デフォルトの名無しさん:2011/08/01(月) 13:35:13.05
Single=計算スピードが速い、メモリ節約、有効桁数が少ない
Double=計算が遅い、メモリ食う、有効桁数が多い(精度が高い)

ちゃんと考えて使い分けろ
958デフォルトの名無しさん:2011/08/01(月) 16:51:12.99
いきなり伸びてるが産業
959デフォルトの名無しさん:2011/08/01(月) 19:41:56.46
わたしはむか〜しBASICという言語で、それこそ「マイコンBASICマガジン」に投稿するほど、BASICの達人でした。
その後プログラミングは全くやってませんが、VBAを始めました。

どの入門書・初心者向けの本を見ても、
「変数のスコープ」だとか、「サブルーチン」をバンバン使う書き方とか、モジュールの概念(標準モジュール・フォームモジュール・シートモジュールの使い分けなど)とか、
一番知りたい情報がないんです。

これらはどのように学べばいいですか?
昔BASICやってたので、プログラムとはどういうものかという知識はあります。
まだ大型書店には行ってませんが、もしそういう本があれば行ってみるつもりです。
960デフォルトの名無しさん:2011/08/01(月) 20:00:37.21
>>959
今は本ではなくネットで勉強する時代に変わりました
本は物理的に大きさが限られているため、現代の複雑なプログラムをすべて説明するのは
場所が足りなくて不可能だからです
「VBA スコープ」などのキーワードで検索してください
961デフォルトの名無しさん:2011/08/01(月) 20:25:34.73
>>959
時代が経過して、今では構造化言語、オブジェクト指向型言語、関数型言語とどんどん様変わりし、
貴方の時代のPGとは考え方も組み方もまるで変わっています。
その中でもVBAは構造化言語とオブジェクト指向言語の中間に位置する、
今の貴方の立場としては比較的覚え易い言語と言えますが、
今後の事を考えると最新のVBやC#などを最初から全て覚え直すつもりで勉強した方が、
周り道の様ですが結局速くいろんな言語に対応出来る様に思います。
特にC#などは、今までやっていたであろうBASICの知識と混合する事なく覚える事が出来るでしょう。
一つの世代が変わった言語でPGを組むと言うのは、それ程までに容易では無いと言えます。
962デフォルトの名無しさん:2011/08/01(月) 22:58:56.01
でも「いつかはCを覚えたい」と思ってるなら先にやっといた方がいいよね
後回しにするといろいろ面倒
知識レベルならともかく、いざ実装しようとすると面倒臭くて死にそうになる
963デフォルトの名無しさん:2011/08/02(火) 02:41:23.34
Dim x as String
x = tes1 & "abc" & qr & "tes2"
ってあったとして(tes1,tes2,は長さ不明の文字列)(qrは長さ不明の数字の文字列)
xの中から"abc"の後ろの数字の部分を抜き取るにはどうしたらいいでしょうか

例えばxが
goiwhabc123oajfa だったら123を返す
とか
fabc1512few だったら1512を返す
こんな感じです
964デフォルトの名無しさん:2011/08/02(火) 02:41:54.08
"tes2"じゃなくてtes2で変数でした
965デフォルトの名無しさん:2011/08/02(火) 07:27:49.71
Val(Mid$(x, InStr(x, "abc") + 3))
超不真面目にやるならこんな感じだな。
966デフォルトの名無しさん:2011/08/02(火) 08:20:06.57
せいきひょうげん!
せいきひょうげんを使う!
967デフォルトの名無しさん:2011/08/02(火) 08:43:33.73
性器表現とは?
露出狂になるんですか?
968デフォルトの名無しさん:2011/08/02(火) 09:20:58.28
つかそれqrそのものじゃないのか?
969デフォルトの名無しさん:2011/08/02(火) 09:28:41.23
Quality of Rifeですか?
970デフォルトの名無しさん:2011/08/02(火) 09:33:04.34
VBではRnd
VBAではRand()

どうにかならんか?
971デフォルトの名無しさん:2011/08/02(火) 09:37:11.15
あれっ
asc("○")ってVBではアスキーコード番号を教えてくれる関数だったと思ったが
VBAでは全角を半角に変える関数になってないか?
972デフォルトの名無しさん:2011/08/02(火) 09:48:42.84
おろどきました。
シート3つあれば、それぞれについてアクティブセルが記憶されてるんです
例えば3つの各シートで全く別のセル住所をアクティブにしておいて
下のマクロを実行するとよく分ります。

Sub てすと()
Sheets(1).Activate
ActiveCell = "うんこ"
Sheets(2).Activate
ActiveCell = "まんこ"
Sheets(3).Activate
ActiveCell = "ちんこ"
End Sub
973デフォルトの名無しさん:2011/08/02(火) 10:20:06.41
何がおどろきなのか判らん
974デフォルトの名無しさん:2011/08/02(火) 10:20:29.36
VBAから他のソフトのボタンとか操作できる?
975デフォルトの名無しさん:2011/08/02(火) 10:22:45.23
Excel 2003 , Win7 で、
ワークシート上に、スクロールバーを置いて、それにより、セルの値を増減させたいです。
しかし、うまくいきません。
・スクロールバーを右clickして、そのプロパティを出します。
・LinkedCell の値に、Sheet1!B10などと、表示したい目的地のセルを書き込みます。
・しかし、プロパティの枠の中のLinkedCellの枠に「Sheet1!B10」と打ち込んで、
 リターンをすると、そのプロパティの枠の中が消えてしまい、
 真っ白になってしまいます。何度やっても書き込めません。
・スライドバーやスピンボタン、どちらもできませんでした。

スライドバーやスピンボタンで、指定したセルの値を変化させる方法は、
上記では間違っているでしょうか?
どうやってやれば実現するでしょうか?

宜しくお願いします。
976デフォルトの名無しさん:2011/08/02(火) 10:57:39.30
>>974
できるけどSendMessageとかAPI使うしボタンのハンドル取得するまでが大変
UWSとか他アプリを操作するソフトをShellで起動した方が簡単
977デフォルトの名無しさん:2011/08/02(火) 11:13:10.62
Form_InitializeとForm_Loadの違いとは?
978デフォルトの名無しさん:2011/08/02(火) 13:04:35.54
>>970
VBAにRand()なんてあったか?
979デフォルトの名無しさん:2011/08/02(火) 13:28:48.97
>>978
無いと思っているのか?
980デフォルトの名無しさん:2011/08/02(火) 19:57:26.26
>>979
VBAにはRandは無いと思うぞ
Randはワークシート関数
そしてVBAにもRndはあるんだが
981979:2011/08/02(火) 20:08:59.88
釣れた(ワラ
982デフォルトの名無しさん:2011/08/02(火) 20:27:15.49
恥ずかしい勘違いをしてしまったことに気付いたときに
誤魔化しとしてつぶやく言葉・・・・・それは

     釣れた(ワラ
983979:2011/08/02(火) 20:32:55.48
(爆)
984デフォルトの名無しさん:2011/08/02(火) 20:39:50.45
(核爆)
985979:2011/08/02(火) 20:45:58.42
986デフォルトの名無しさん:2011/08/02(火) 21:20:07.88
A1:E50の中で一番下に要素がある行を返すのと一番右に要素がある列を返す方法を教えてください
987デフォルトの名無しさん:2011/08/02(火) 21:37:33.45
988デフォルトの名無しさん:2011/08/02(火) 21:49:59.32
>>986
1つもなかったら0を返す

Sub aaa()
  r = 50
  Do While r >= 1 And cat1(r) = 0
    r = r - 1
  Loop
  c = 5
  Do While c >= 1 And cat2(c) = 0
    c = c - 1
  Loop
  Debug.Print r, c
End Sub

Function cat1(r)
  If r >= 1 Then s = WorksheetFunction.CountA(Range(Cells(r, 1), Cells(r, 5)))
  cat1 = s
End Function

Function cat2(c)
  If c >= 1 Then s = WorksheetFunction.CountA(Range(Cells(1, c), Cells(50, c)))
  cat2 = s
End Function
989977:2011/08/02(火) 21:52:00.99
>>987
I'm afraid I do not speak English, nor do I read it.
It would be really, truly, absolutely helpful, if you could provide me with some information regarding 'Form methods' in Japanese.
990デフォルトの名無しさん:2011/08/02(火) 22:10:45.94
>>987
とても役立ちました
ありがとうございます!
991デフォルトの名無しさん:2011/08/02(火) 22:11:59.47
992デフォルトの名無しさん:2011/08/02(火) 22:35:42.98
"<"から">"まで(下のでいう<koko>,<kokomo>)を見つけ出してそれを改行コードのvbCrLfに置換したいのですがどうしたらいいでしょうか?
"abc<koko>def<kokomo>ghi"
置換後は
"abc" & vbCrLf & "def" & vbCrLf & "ghi"
このようにしたいです
<>内またその外の文字数は不明です

お願いします
993デフォルトの名無しさん:2011/08/02(火) 22:53:27.76
ユーザーフォームのラベルの文字の書式について

ワークシートに"123"とあり、2だけ赤字
これをラベルに反映されるにはどうしたらよいでしょうか?

forecolorではNullとなりエラーとなったので質問します。
994デフォルトの名無しさん:2011/08/03(水) 00:02:15.55
一つのラベルじゃ無理
桁ごとにラベル用意するかピクチャボックススに書く
995デフォルトの名無しさん:2011/08/03(水) 01:34:36.97
>>992

Sub AAA()
Dim A As String
A = "abc<koko>def<kokomo>ghi"
A = Replace(Replace(A, "<koko>", vbCrLf), "<kokomo>", vbCrLf)
MsgBox A
End Sub
996デフォルトの名無しさん:2011/08/03(水) 02:00:41.18
For i = 1 To r
For le = c To 5
For te = 5 To le - 1
If Cells(i, le).Value = Cells(i, te).Value _
Then Cells(i, le).Clear
Next te
Next le
Next i

rは要素がある最大行,cは要素がある最大列
これで重複を消そうとしたのですがうまくいきません
どうしたらいいでしょうか
997デフォルトの名無しさん:2011/08/03(水) 02:07:48.95
すみませんstep -1を付けたらうまくいきました
forを逆からやるときってstepでマイナスつけないといけないんですね・・・
998デフォルトの名無しさん:2011/08/03(水) 20:14:45.49
age
999デフォルトの名無しさん:2011/08/03(水) 21:05:41.49
______  ___________
         V
    _____
   /::::::::::::::::::::::::::\                  _
  /::::::::::::::::::::::::::::::::::::::\             /  ̄   ̄ \
  |:::::::::::::::::|_|_|_|_|           /、          ヽ はぁ?黙ってろデブw
  |;;;;;;;;;;ノ   \,, ,,/ ヽ          |・ |―-、       |
  |::( 6  ー─◎─◎ )          q -´ 二 ヽ      |
  |ノ  (∵∴ ( o o)∴)          ノ_ ー  |     |
/|   <  ∵   3 ∵>          \. ̄`  |      /
::::::\  ヽ        ノ\           O===== |
:::::::::::::\_____ノ:::::::::::\        /          |
1000デフォルトの名無しさん:2011/08/03(水) 21:06:45.39
うんこチンチン
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。