トップページtech
1002コメント344KB

Excel VBA 質問スレ Part42©5ch.io [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/06/26(日) 02:35:43.31ID:bX5XM7mI
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK

※前スレ
Excel VBA 質問スレ Part41©2ch.net
http://echo.2ch.net/test/read.cgi/tech/1461697906/

※関連スレ
VBAなんでも質問スレ Part2
http://echo.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://echo.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 122
http://echo.2ch.net/test/read.cgi/bsoft/1461287268/
0153デフォルトの名無しさん2016/07/02(土) 14:54:42.75ID:uJKAJ0cL
abcdeとかabczyの文字列だろ察してやれよ
0154デフォルトの名無しさん2016/07/02(土) 14:57:48.15ID:AdcotA2t
vba sum関数で質問です。よろしくお願いします。

sumで合計する対象となる数個のセルの中に負の値があると
合計されず、値がブランクになってしまいます。

例えば、A列の1〜5行目までのセルの合計を
合計 = Application.WorksheetFunction.Sum(Range(Cells(1, 1), Cells(5, 1)))
として求める場合に、どこかのセルで負の値があると、合計は” ”となります

エラーの原因と正しく合計するためにどうしたらいいのか、ご指導いただけませんでしょうか?
よろしくお願いいたします。
0155デフォルトの名無しさん2016/07/02(土) 15:09:16.78ID:AdcotA2t
>>153
すみませんでした
0156デフォルトの名無しさん2016/07/02(土) 17:10:19.71ID:V1fyPFSu
>>154
シートでsum関数使った結果は?
正しいならvbaの型がおかしいのでは?
0157デフォルトの名無しさん2016/07/02(土) 17:13:08.92ID:AdcotA2t
>>156
ありがとうございます。
シートでのsum関数はしっかり合計されます。
フォーマットも"数値"に直してあるのですがどうしても合計されません。
0158デフォルトの名無しさん2016/07/02(土) 17:16:37.51ID:V1fyPFSu
>>157
コードを上げて。
0159デフォルトの名無しさん2016/07/02(土) 17:37:07.79ID:DDjutEkV
コードを見てみないと何とも言えないが

>>154の指摘の通り
Dim 合計 As Longなり Dim 合計 As Doubleなり
変数は宣言してから使うべき
0160デフォルトの名無しさん2016/07/02(土) 18:11:22.98ID:pRO6q6b5
>>154
戻り値:倍精度浮動小数点型 (Double) とあるから
そもそもブランク” ”なんて返ってこないと思うのだが・・・?

WorksheetFunction.Sum メソッド (Excel)
https://msdn.microsoft.com/ja-jp/library/office/ff838410.aspx
0161デフォルトの名無しさん2016/07/02(土) 19:28:40.63ID:uAYigWdO
>>160
見てみるとエラーで落ちると書いてあるから
おおかたValiantか直接セル指定で書き込んでいるんじゃないか?

で、エラー時はログを出して終わりとか握り潰しているとか。
0162デフォルトの名無しさん2016/07/02(土) 19:37:21.31ID:0/OF67S+
この場合引数はRangeだから
>•引数が配列またはセル範囲の参照である場合、その中に含まれている数値だけが計算の対象となります。配列やセル範囲に含まれる空白セル、論理値、または文字列はすべて無視されます。
が適用される気がするんだが

ちなみにうちの2007で試したら、指定したRangeにエラー値とかあるとエラーになってるっぽい
エラー値も無視してくれれば良いのに
0163デフォルトの名無しさん2016/07/02(土) 21:15:43.11ID:ZFshQN/m
>>152
ありがとうございます。ただ、実行すると
オブジェクトが必要です、というエラーが出てしまいます。
0164デフォルトの名無しさん2016/07/02(土) 21:21:41.67ID:+dqhJmU8
>>163
デバッグくらいは自分でやってみたら
デバッグするうちに理解できる事もあるから
0165デフォルトの名無しさん2016/07/02(土) 21:24:09.83ID:+dqhJmU8
>>154
sumの対象範囲を色々変えてみたらどの箇所が含まれていたらエラーになるか判る
そのセルについて詳しく調べたら何か判るかも
本当に負の値が原因なのか
0166デフォルトの名無しさん2016/07/02(土) 21:26:42.02ID:Kre/4kSw
教えたがり回答者の正しいかどうかも分からんコードのデバッグを質問者に要求する理不尽スレw
0167デフォルトの名無しさん2016/07/02(土) 21:29:57.19ID:+dqhJmU8
>>166
ならそのコードを採用しなければ良いだけ
0168デフォルトの名無しさん2016/07/02(土) 21:34:11.66ID:Kre/4kSw
>>167
採用されてもいないコードのデバッグを要求するお前な何なん?w
0169デフォルトの名無しさん2016/07/02(土) 21:55:25.63ID:hSx47VXK
ここ質問スレだから回答する事そのものに対して文句を言うのは筋違い。

回答が間違っているとケチをつけるなら自分で書くべきであって、
何もしないのに文句をつけるのも筋違い。
0170デフォルトの名無しさん2016/07/02(土) 22:17:27.39ID:cbv/Tz9a
サービス回答
0171デフォルトの名無しさん2016/07/02(土) 22:22:30.25ID:mzeRacQg
>>166
ID:Kre/4kSw
バカ発見
0172デフォルトの名無しさん2016/07/02(土) 22:24:48.25ID:Kre/4kSw
>>169
それよりお前は筋違いの回答をデバッグして出直してこいやwww
0173デフォルトの名無しさん2016/07/02(土) 22:34:10.98ID:hSx47VXK
>>172
というかお前は何でVBAすら分からないのに張り付いてるんだ?
0174デフォルトの名無しさん2016/07/02(土) 22:41:19.33ID:Kre/4kSw
>>173
VBA分からんのはお前やろwせめて動くコード書けるようになってから回答しろやwwww
0175デフォルトの名無しさん2016/07/02(土) 22:50:50.43ID:hSx47VXK
>>174
以前も他人の書いたコードにいちいちケチつけてアヘってるバカいたけど、そいつは初歩的なルールくらいは理解してたんだよ。
そういう奴なら「俺がこの言語に一番詳しいんだ」っていう自己顕示欲から馬鹿な事してるんだなぁと推測出来る。

お前の場合は全然分かってないだろ?
VBA分かれば他人のコード見ても動きそうかどうかは分かるわけだから「正しいかどうかも」という言い回しにはならない。
だから張り付いてても面白くないと思うんだよ。お前の行動原理がいまいち分からなくてちょっと聞いてみたいんだ。
0176デフォルトの名無しさん2016/07/02(土) 22:58:44.11ID:Kre/4kSw
>>175
お前にとっては動けば正しいんかwやっぱり教えたがりのアホやんw
せっかくやから教えてやるけど質問者の望む挙動の事を正しい言うんやで
それは俺にもお前にも分からん、質問した人間にしか分からんのやで
しっかり勉強しいやwww
0177デフォルトの名無しさん2016/07/02(土) 23:08:40.71ID:hSx47VXK
>>176
そしたらコードのデバッグは質問者にしか出来ない事になるだろ。
「動くコード書けるようになってから」と言いつつ「動けばいいのか」ってのもおかしいし。

形だけこき下ろしたって自分が惨めになるだけだと思うんだが、それが楽しいのか?
0178デフォルトの名無しさん2016/07/02(土) 23:10:40.65ID:K4LZmTk1
>>153
なんとなくだがそれは違う気がする。
A列に(判別用の)abcを入れてあるんだと思う。
その上で、A1がabcだったら行全体を削除。
言い回しが変だが言い間違ってる。
0179デフォルトの名無しさん2016/07/02(土) 23:15:03.24ID:b38bfQ1l
>>172
バカ発見
0180デフォルトの名無しさん2016/07/02(土) 23:16:56.97ID:Kre/4kSw
>>177
お前のコードがどう動くつもりで書かれたのかどうやって質問者が分かんねんwww
頭わいとるなお前www
0181デフォルトの名無しさん2016/07/02(土) 23:18:17.38ID:b38bfQ1l
>>174
バカ発見
>>180
バカ発見
0182デフォルトの名無しさん2016/07/02(土) 23:21:42.17ID:hSx47VXK
>>180
お前VBAどころかプログラム言語全般分からないのかよ。
0183デフォルトの名無しさん2016/07/02(土) 23:30:30.10ID:Kre/4kSw
>>182
でデバッグできたんか?www
0184デフォルトの名無しさん2016/07/02(土) 23:44:22.28ID:hSx47VXK
>>183
いや、お前が言うには正しい挙動は質問者にしか分からないんだろ。
煙に巻くにしても、せめて自分の主張した事と矛盾する煽り方はやめようよ。

何を目的にしているか分かれば、書かれたコードを読めばどういう挙動を狙っているかだいたい推測出来るもんなんだよ。
このスレにも「このコードで動かないんですけど」って貼り付けられてる事あるだろ。あれ何のつもりか理解してなかったの?
0185デフォルトの名無しさん2016/07/02(土) 23:50:46.30ID:b38bfQ1l
>>183
バカ発見
0186デフォルトの名無しさん2016/07/02(土) 23:58:11.23ID:uAYigWdO
周期的に大阪の部落民がファビョるよね
0187デフォルトの名無しさん2016/07/02(土) 23:58:35.66ID:uJKAJ0cL
夏だな
0188デフォルトの名無しさん2016/07/03(日) 00:11:35.01ID:wofBOAox
>>168
163
0189デフォルトの名無しさん2016/07/03(日) 00:14:24.06ID:wofBOAox
>>180
質問者は仕様を知ってる
その仕様にあってると言う前提でコードを見るだろう
質問スレはVBAを知らない人には用は無いだろ
0190デフォルトの名無しさん2016/07/03(日) 06:19:38.31ID:HMlt8Ia6
>>184
> 何を目的にしているか分かれば、書かれたコードを読めばどういう挙動を狙っているかだいたい推測出来るもんなんだよ。
>>189
その仕様にあってると言う前提でコードを見るだろう

お前らホンマにアホやなあw
お前らが要求を正しく理解しとると信用せなあかん理由なんか一個もないわw

能天気に予断を持って問題にぶちあたるからデバッグ一つ出来んし
質問にも答えられんのやでお前らはwwww
0191デフォルトの名無しさん2016/07/03(日) 06:26:37.57ID:wofBOAox
>>190
じゃ君が答えれば良いのに
0192デフォルトの名無しさん2016/07/03(日) 06:33:39.45ID:HMlt8Ia6
>>191
いいところに気がついたなw
俺はお前らの声なき質問に答えとるんやでw

八割方バカにしとるだけやけどな
いい酒の肴になるでお前らwwww
0193デフォルトの名無しさん2016/07/03(日) 06:37:07.17ID:S035+4fi
>>192
声なき質問に答える前に>>150の声ある質問に答えてあげて
0194デフォルトの名無しさん2016/07/03(日) 06:44:42.33ID:HMlt8Ia6
>>193
ガチアホなんかお前?
これはいくら俺でもキョトンとしますわ
0195デフォルトの名無しさん2016/07/03(日) 06:47:28.99ID:S035+4fi
>>194
いいから答えてあげて?
0196デフォルトの名無しさん2016/07/03(日) 09:07:51.72ID:aUhukWnc
多分、質問者は、引数の使い方というか、意味ををわかってない
だから引数指定せずにcallして、エラーになってる。
コードそのものが間違ってるわけじゃないけど、
質問者のレベルに合わせて
コードの修正なり使い方の解説なりをやろうとしない回答者の方も
結構アレなんじゃないかと思う
0197デフォルトの名無しさん2016/07/03(日) 09:17:41.22ID:wofBOAox
エラーとは関係無いが
unionは複雑な範囲に対応出来ないからエラーになる事がある
削除対象範囲を都度削除した方がより色んなケースに対応できると思う
速度的には比較的遅いだろうけど
0198デフォルトの名無しさん2016/07/03(日) 09:45:16.53ID:UDre5Mdz
解説が必要だと思うなら自分でやってあげればいいだろう。

コードは対応できるケースが増えるほど複雑になるから他人に教えるのには向いてない。
このスレは質問スレであってコードを代行して書くスレじゃないから極論、条件を全部満たす必要もないし。

だいたい>>150に書いてある条件だけじゃ実行するだけで常に意図した様に動作するマクロなんて作れないし、
最終的に自分で解決しようって意欲のないヤツに付き合うと泥沼化するから親身になって答えるのもなぁ・・・。
やりたければやればいいけど、それを金で雇ったわけでもない他人に要求するのは間違っている。
0199デフォルトの名無しさん2016/07/03(日) 10:01:56.75ID:ggWuEzzb
>>196
バカ発見
0200デフォルトの名無しさん2016/07/03(日) 10:39:20.19ID:TV+AI8sZ
朝6時半から大阪部落民が大騒ぎだな
よっぽど昨日のことが悔しかったんだろうなw
0201デフォルトの名無しさん2016/07/03(日) 13:02:52.21ID:a7dDnFnC
Excelオートメーションはこのスレで良いんですか?
ホスト言語はC#です
0202デフォルトの名無しさん2016/07/03(日) 13:51:27.57ID:aanUjlOw
>>201
許す
申してみぃ
0203デフォルトの名無しさん2016/07/03(日) 14:08:36.63ID:FivcklIc
>>201
C# スレの方がいいと思う
0204デフォルトの名無しさん2016/07/03(日) 14:10:25.85ID:gxM8oU+G
ここExcel VBAしか知らない人ばっかりだよ
0205デフォルトの名無しさん2016/07/03(日) 14:54:22.43ID:T0oOZbz2
ExcelVBAのスレなんだから、そうであっても不思議ではない
0206デフォルトの名無しさん2016/07/04(月) 17:43:51.35ID:6CVzVAi9
「VisualBoyAdvance」で久しぶりにポケモンをしようと思ったら、キーボードのxボタンを押してもメニューが開けませんでした。
xボタンでキャンセルすることは出来ますが、メニュー画面は何度試しても開けません。詳しい方、教えて貰うことは出来ませんでしょうか?
0207デフォルトの名無しさん2016/07/04(月) 17:45:34.92ID:LPXoV+6O
練に練ったネタでダダ滑り
0208デフォルトの名無しさん2016/07/04(月) 18:48:22.99ID:QouUNtv0
>>206
多分ぱちもの
0209デフォルトの名無しさん2016/07/04(月) 19:07:24.56ID:p6FEI/fn
>>206
キーボードではなく念を使え
0210デフォルトの名無しさん2016/07/04(月) 19:11:41.70ID:6CVzVAi9
詳しいことは何も知らないので申し訳ありませんが、「念」って一体なんのことでしょう?
0211デフォルトの名無しさん2016/07/04(月) 20:50:32.80ID:HBX/lMQ7
>>206
多分、PCのフレームレートとNMIのタイミングが合っていないのだろう。
昔のPen4辺りのPC中古で買って専用機にすれば動くかもね。

エミュレータとROMの相性問題も有るだろうからそっちかも知れんけどね。
0212デフォルトの名無しさん2016/07/04(月) 21:09:28.08ID:3pcfcKpn
質問です
@http://i.imgur.com/T7PiBmi.jpg

Ahttp://i.imgur.com/QswNeBd.jpg
みたいに、
@表データの黒太字以外の文字の色を白にしてAのように黒太字の列以外を非表示にするコードを教えて下さい
0213デフォルトの名無しさん2016/07/04(月) 21:30:55.53ID:crVdYcZS
>>212
色を変えたい範囲を選択して↓を実行

Sub ChangeToWhiteFont()
Dim c As Range
For Each c In Selection
With c.Font
If Not (.Bold And .ColorIndex = 1) Then
.ColorIndex = 2
End If
End With
Next
End Sub
0214デフォルトの名無しさん2016/07/04(月) 21:53:15.46ID:3pcfcKpn
>>213
出来れば列も自動で非表示にできるようにしたいです
0215デフォルトの名無しさん2016/07/04(月) 21:58:17.49ID:gJJxx5uO
後だし条件なうえに上から目線
0216デフォルトの名無しさん2016/07/04(月) 22:17:34.03ID:9BRDOIan
いや、列非表示って最初から書いてますやん
0217デフォルトの名無しさん2016/07/04(月) 22:25:07.57ID:crVdYcZS
>>214
よく読んでなかった。ごめんなさい
使い方は同じ。範囲を選択して↓を実行

Sub ShowOnlyBlackAndBold()
Dim col As Range
Dim toHide As Boolean
Dim c As Range

For Each col In Selection.Columns
toHide = True

For Each c In col.Cells
With c.Font
If .Bold = True And .ColorIndex = 1 Then
toHide = False
Else
.ColorIndex = 2
End If
End With
Next

If toHide Then
col.EntireColumn.Hidden = True
End If
Next
End Sub

(ただ、例示の画像だと「せ」列が残ってるけど、これは画像のミス?)
0218デフォルトの名無しさん2016/07/04(月) 23:12:28.55ID:fZa2v/xo
ExcelもWordも統合してHTML+JSベースの強力なオーサリングツールになればいいのに
ドキュメント中に作成された表はそれぞれがシートオブジェクト
方眼紙はやめよう
0219デフォルトの名無しさん2016/07/04(月) 23:42:24.20ID:3pcfcKpn
>>217
選択した列が全て非表示になってしまう…
0220デフォルトの名無しさん2016/07/04(月) 23:53:25.93ID:usjNXWI/
エクセルを帳票に使うクズは死ねばいいのに
0221デフォルトの名無しさん2016/07/05(火) 01:34:02.04ID:rtvoXzxv
>>219
フォント色「自動」の場合を考えていませんでした…
色の判定・操作に ColorIndex を使わずに Color を使うべきでした
Ifブロックを↓に置き換えてください…

If .Bold And .Color = RGB(0, 0, 0) Then
toHide = False
Else
.Color = RGB(255, 255, 255)
End If
0222デフォルトの名無しさん2016/07/05(火) 01:39:06.79ID:rtvoXzxv
>>221 追記
調べたら、色の定数がありました…
↓に訂正します…

If .Bold And .Color = vbBlack Then
toHide = False
Else
.Color = vbWhite
End If
0223デフォルトの名無しさん2016/07/05(火) 08:01:17.25ID:SGzeud2c
>>212
お前らすげーなー
オレには>>212は「黒太字以外の文字の色を白にして非表示にする」としか解釈できない
「黒太字の列以外」の意味が分からない・・
Aの例示であってるの?
0224デフォルトの名無しさん2016/07/05(火) 12:20:08.08ID:vwZ66KIR
日本語おかしいが解読可能なレベル
1を2にした後で黒太字列を非表示にしたいと読めなくもない
0225デフォルトの名無しさん2016/07/05(火) 13:45:09.33ID:P7lw8+Qp
>>222
やっぱり上手く出来ないです…
作っていただいたのにすいません

>>223
>>224
結局はAみたいに太字のセル以外の列を非表示にしたいだけです
(Aの画像はミスで「せ」列も非表示にしたいです)
実際使ってる表は数字が入ってるセルが空白になってて数字を入力すると入力したセルと一つ左のセルのフォントが太字の黒色になるように条件書式設定をしてます
いろいろ説明不足で申し訳ないですm(_ _)m
0226デフォルトの名無しさん2016/07/05(火) 14:10:57.60ID:rtvoXzxv
>>225
うわぁ、ほんとに後出し来ちゃったw
しかし、その説明だと@画像も実際とは違うことになるんじゃない?
(太字になっていない文字セルの右の数字セルは空白じゃないとおかしくない?)
0227デフォルトの名無しさん2016/07/05(火) 15:15:46.85ID:rtvoXzxv
・数字セルが空白の場合、その横の文字セルのフォント色を白にする
・数字セルが空白ばかりの列は、その横の文字列とともに非表示にする
…というコード↓

Sub HideEmptyColumns()
Dim cols As Range
Set cols = Selection.Columns

Dim colCount As Long
colCount = cols.Count

Dim i As Long
Dim c As Range
Dim toHide As Boolean

For i = 2 To colCount Step 2
toHide = True

For Each c In cols(i).Cells
If c.Value = "" Then
c.Offset(0, -1).Font.Color = vbWhite
Else
toHide = False
End If
Next

If toHide Then
cols(i).EntireColumn.Hidden = True
cols(i - 1).EntireColumn.Hidden = True
End If
Next
End Sub
0228デフォルトの名無しさん2016/07/05(火) 16:36:55.72ID:SGzeud2c
「せ」列が非表示じゃないから混乱した(>_<)

>>224
ほんとに解読してた?w

>>225
太字の黒色というのはあくまでも二次的で、空白なのか数字が入力されてるかどうかがスタートじゃないか。
それくらいは自分で整理してから聞くべき。
0229デフォルトの名無しさん2016/07/05(火) 16:45:10.22ID:PelZasoz
あるセルに「東京」を含む文字があった場合に、その行は残し、
それ以外の文字が入力されていたら、その行は削除し、次の行を同様に処理する、というプログラムを作っているのですが

for i=2 to 最終行
   if not cells(i,1) = "*東京*" then
   rows(i).delete
      i=i-1
   end if

と書いた場合に、cells(i,1)には「西東京支店」と入力されていても
0230デフォルトの名無しさん2016/07/05(火) 16:46:26.54ID:PelZasoz
すみません。質問させてください。↑では誤爆してしまいすみませんでした。

あるセルに「東京」を含む文字があった場合に、その行は残し、
それ以外の文字が入力されていたら、その行は削除し、次の行を同様に処理する、というプログラムを作っているのですが

for i=2 to 最終行
   if not cells(i,1) = "*東京*" then
   rows(i).delete
      i=i-1
   end if
next i
と書いた場合に、cells(i,1)には「西東京支店」と入力されていても削除されてしまいます。
正しいコードを教えてください。よろしくお願いします。
0231デフォルトの名無しさん2016/07/05(火) 16:50:27.66ID:NVlB09VE
>>230
=じゃなくてlike演算子を使うのが正しいのでは?
0232デフォルトの名無しさん2016/07/05(火) 16:52:50.76ID:PelZasoz
>>231

ありがとうございました!
動きました!感謝してます!
0233デフォルトの名無しさん2016/07/05(火) 17:12:03.04ID:eka1nMbT
>>230
最終行から-1して2までループした方が
行削除したあとi=i-1しなくて良くなる
0234デフォルトの名無しさん2016/07/05(火) 17:12:51.90ID:PelZasoz
なるほどです!ありがとございます!
0235デフォルトの名無しさん2016/07/05(火) 18:41:30.53ID:P7lw8+Qp
>>227
希望通りに実行出来ました!
深く感謝しますm(_ _)m
>>226
>>228
おっしゃる通りですね…
社会人なのにまともに相談すら出来ない自分が恥ずかしいです
0236デフォルトの名無しさん2016/07/07(木) 00:03:45.49ID:ms24UhoI
格好いい感じにしたいんですが、
何かないすかねぇ。
セルが二重スクロールとかするといいと思うんですけど。
0237デフォルトの名無しさん2016/07/07(木) 03:00:26.48ID:n0vQrV8D
>>236
何をもって格好がいいと言うのかはその人の価値観だから何とも言えない。
ただ、二重スクロールさせると言うならスクロールさせる方向にセルの値を書き換える擬似的な手段を取れば
二重スクロールどころかラスタースクロールも出来るんじゃないか?
0238デフォルトの名無しさん2016/07/07(木) 08:21:45.23ID:zdkrAvL1
このブックは自動的に消滅する
0239デフォルトの名無しさん2016/07/07(木) 09:10:15.40ID:N8OTwtyP
できらぁ!!

え?同じエクセルでステーキを?
0240デフォルトの名無しさん2016/07/08(金) 00:28:32.91ID:ASoGoDpa
ラスタースクロールの機能は普通に欲しいな。

といっても、ドラクエIIIの旅の扉とか、飛龍の拳の格闘シーンみたいな、
うねうねするやつじゃないぞ。
あれは全然実用的じゃないから。

欲しいのは、スーパーマリオの得点みたいなやつ。
セルの固定機能じゃ、横スクロールまでは固定されないからな。
何で標準で付いてないんだろうと思うわ。
0241デフォルトの名無しさん2016/07/08(金) 00:52:26.17ID:aiQDUAqq
>>240
あれはラスタースクロールじゃなくて
スプライト0を使ったただの画面分割じゃん
0242デフォルトの名無しさん2016/07/08(金) 12:20:08.11ID:NKWbtILN
ウィンドウ2つ開けよ
0243デフォルトの名無しさん2016/07/08(金) 21:30:53.58ID:ASoGoDpa
>>241
原理同じじゃないの?
0244デフォルトの名無しさん2016/07/08(金) 22:37:47.74ID:pvQfBsKn
>>243
全然違うけどここでその件を突っ込んで話すとあまりよろしくなさそうなので
他のスレに誘導してくれたらそっちで話してもいいけど
多分そこまで興味ないでしょ?
0245デフォルトの名無しさん2016/07/08(金) 22:54:08.11ID:CyJCu0oQ
セルじゃなくてテキストボックスか図でやれば簡単に出来そうだが
0246デフォルトの名無しさん2016/07/09(土) 00:58:36.14ID:ztQev+8o
@Excel VBAで記述したマクロは、Word VBA、Access VBAにも適用できますか?
AExcel VBAでプログラムを記述するとき、VBAのリファレンス本をみてサンプルを記述して動かすやり方と
マクロの記録を活用して自動化させたい操作をマクロに落とすやり方、どちらを活用されていますか。
個人的に後者はマクロの知識がなくても活用できて便利かなと思います。
Bマクロの自動化について、逆にマクロの自動化だけでは実現できないケースがあると思います。具体的などんな例があげられますか?
C普通プログラムって外部にDBがあって、そのDBをプログラムが間接的に参照する形をとるケースが多々というか一般的だと思うんです。
DBとプログラムは分離させるのが当たり前の世界ですが、Excel VBAの場合Excelブック内にDBの内容を持たせる
ことができるので他の一般的なプログラミング言語とは何かこう、特異なんですね。
どう思いますか?
0247デフォルトの名無しさん2016/07/09(土) 01:02:13.73ID:ztQev+8o
最後にExcel VBAで確認されている不具合にはどのようなものがあげられますか?
0248デフォルトの名無しさん2016/07/09(土) 01:22:25.32ID:oowJEj9N
>>246
1 ほとんどできないと思っていい。
2 うーん
本質的に分かってないな。例えば、シートをコピーして、とかひたすら合計していく、というような操作は
マクロの記録をそのまま利用できるよね。でも、選択肢がある場合とか条件に応じた処理のようなものは
マクロの記録で、というわけにはいかないでしょ?
だから二つを比べるのはおかしい。
3 上記の通り
4 何を言っているのでしょうか。VBAと一般的なプログラミング言語を同列で考えること自体ずれて
います。それにエクセルのシート内のデータはデータベースではありません。
データベース的に利用しているだけで、本質的には表です。
しかしながら、外部からODBCなどで参照することはできるので、データベース的に使うこともできる、という
だけです。それをどう思いますか?と聞かれてもね。
0249デフォルトの名無しさん2016/07/09(土) 01:34:33.01ID:7I8POFn2
>>246
バージョン如何によっても話が変わるし、
用語が適切に利用されてない事から正確に理解していないと容易に推測出来るので、
目的が明確にならない限り、齟齬を起こす可能性が高くて答えようがないな。

だいたいAとCはアンケートだし、それ聞く意味ないだろ。
0250デフォルトの名無しさん2016/07/09(土) 01:40:40.58ID:zD7puYdT
>>246
@ → 内容による、というか「マクロ」をどう定義しているのかによる
自分のプログラムはOfficeなら何でも動くようにしてるけど....
0251デフォルトの名無しさん2016/07/09(土) 01:41:27.03ID:zD7puYdT
>>248
>VBAと一般的なプログラミング言語を同列で考えること自体ずれています。

なぜ?
0252デフォルトの名無しさん2016/07/09(土) 02:41:45.14ID:EE+3+eK4
>>246
1.EXCELに依存しないVBAのコードは当然そのままほかのVBAでも動くので適用できる

2.サンプルみてもそのままのコードで済む事なんてほとんどない
マクロの記録してもそのコードそのままで動かすことなんてほとんどない
なので、どっちのやり方も活用してない

3.お前が思うことの具体例を聞かれても知らん
そもそもマクロの自動化だけで一切コードいじらないで済む例のほうがまれだと思うが

4.データとプログラムが一体な構造が特殊だというなら、特殊なんだろうな
必要ならデータのみのブックとプログラムのみのブックにわければ良いだけだが


今のVBAの不具合ですぐ思いつくようなものは知らんわ
VBAはかなり枯れた言語だぜ
■ このスレッドは過去ログ倉庫に格納されています