トップページtech
1001コメント417KB

Excel VBA 質問スレ Part33

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/10/17(木) 22:04:40.64
ExcelのVBAに関する質問スレです

                   ___
       ___      /____ヽ      ____
      /____\    | |´・ω・`| |    /___ヽ
      .l |´・ω・`|  ニX二 . ̄ ̄ ̄  二X二  |´・ω・`| l 俺たちに任せろ
      !、 ̄ ̄ ̄  ヽ   |       |    /    ̄ ̄ ̄/
       ヽ_/ヽ、  ヽ__)  \__/\_/.   /_/  ノヽ_/
             ̄                ̄ ̄

前スレ
Excel VBA 質問スレ Part32
http://toro.2ch.net/test/read.cgi/tech/1381151717/

このスレはコード書き込みOKです。
作成依頼もOKですが、作成依頼限定ではありません。

コードが嫌な人はこちらのスレへ
http://toro.2ch.net/test/read.cgi/tech/1381151995/l50
0693デフォルトの名無しさん2014/06/12(木) 21:35:50.99ID:paP2EzQv
>>691
できないくせに質問者に偉そうな態度とってるやつを嘲笑ってるだけですよw
僕はそうはなりたくないなあ。反面教師にさせていただきますw
0694デフォルトの名無しさん2014/06/12(木) 21:37:43.46ID:leNeVPHt
>>692
ババアでも40くらいまでで可愛ければコード組んじゃうかもしれない。
意外にストライクゾーン広いんだ。
0695デフォルトの名無しさん2014/06/12(木) 21:38:15.19ID:paP2EzQv
>>692
問題ないと思います。質問するのは自由ですし、僕もできれば協力したいですけど、
実力が及ばず…。
0696デフォルトの名無しさん2014/06/12(木) 21:38:20.26ID:A1ckDykJ
>>693
もうなってるから心配すんな
0697デフォルトの名無しさん2014/06/12(木) 21:39:25.92ID:JgOg9e9B
>>693
お前この程度で本当に出来ない奴いると思うの?自分が出来ないからそんな事言っちゃうんだろ
0698デフォルトの名無しさん2014/06/12(木) 21:42:27.75ID:paP2EzQv
>>697
できるんだったらとっくに作ってると思いますけど。
できると口で言うだけなら僕にもできますよw
でもそういう虚勢を張るのって人としてどうかと思うから、正直にできないって僕は言います。
できるんですね?
0699デフォルトの名無しさん2014/06/12(木) 21:45:29.20ID:FQgQ1zJa
口でできるんなら下もいいじゃん、気持ちいいよ?
0700デフォルトの名無しさん2014/06/12(木) 21:56:20.85ID:A1ckDykJ
解決方法を教えてください、という質問に対して必要な回答は解決方法であって解決そのものでは無いし
後出しで「実際に解決してください」と言われても自分でやれとしか
0701デフォルトの名無しさん2014/06/12(木) 21:59:13.12ID:JgOg9e9B
>>698
悪いが煽りは逆効果だ
これで答えたら他の奴がマネするからな
0702デフォルトの名無しさん2014/06/12(木) 21:59:30.00ID:paP2EzQv
>>700
あははw
0703デフォルトの名無しさん2014/06/12(木) 22:01:34.14ID:paP2EzQv
>>701
できないんですね。それじゃあ僕と同じですねw
正直にできないって言える分僕の方が大人です。
0704デフォルトの名無しさん2014/06/12(木) 22:10:30.70ID:yqko6Nwn
A.xlsを開いてB.xlsを呼び出し
B.xlsの値を参照した後B.xlsを閉じる際に

If Workbooks.Count = 2 Then ActiveWorkbook.Close

これで閉じてるのですが、こっちが普通ってやり方ありませんか?
上記のだとすぐ問題が起きそうで
0705デフォルトの名無しさん2014/06/12(木) 22:12:05.33ID:JGtl8L6J
日別の購入データの通し番号から、マスターを参照してジャンル分けして、ジャンルごとの合計金額を出したいです。

http://light.dotup.org/uploda/light.dotup.org28231.png

データはこのような画像の通りにシート3つに分かれて存在しています。
どのようなマクロを組めばいいかお教え願いたいです。
ジャンルごとに変数というものを持たないといけないのでしょうか?
実際は母が使うので、ボタン一つで出来るのだとありがたいのですが・・・
大変面倒な質問ですが、お願いします
0706デフォルトの名無しさん2014/06/12(木) 22:14:44.17ID:JGtl8L6J
> SQLを投げて、レコードセットに取得した値を他のシートに展開する
これどうやるんですか?実際に教えてください
0707デフォルトの名無しさん2014/06/12(木) 22:23:06.96ID:FQgQ1zJa
Try {
throw SQL
} Catch Values as RecordSet {
RecordSet.extract(Other.Shit)
}
0708デフォルトの名無しさん2014/06/12(木) 22:24:27.04ID:JGtl8L6J
>>707
このスレにまともにコード描ける人が居ないってのは良く分かりました
なんかわざと荒らしをして煽って邪魔する人も居るし
答え出るまでこのスレ居ますね
0709デフォルトの名無しさん2014/06/12(木) 22:26:34.93ID:JGtl8L6J
>>704
それが普通です
0710デフォルトの名無しさん2014/06/12(木) 22:26:53.60ID:A1ckDykJ
>>704
B.xlsを開いた直後にset BookB as ActiveWorkbook みたいな感じで
B.xlsを捕捉しておいて処理後にBookBをCloseするか

エクセルの仕様上、同名のファイルは開けないのでB.xlsのファイル名を保持しておいて
処理後に開いてるブックの中からB.xlsを見つけて閉じるか
0711デフォルトの名無しさん2014/06/12(木) 22:27:54.98ID:A1ckDykJ
Set BookB = ActiveWorkbook だった
0712デフォルトの名無しさん2014/06/12(木) 22:29:02.22ID:JGtl8L6J
>>711
日別の購入データの通し番号から、マスターを参照してジャンル分けして、ジャンルごとの合計金額を出したいです。

http://light.dotup.org/uploda/light.dotup.org28231.png

データはこのような画像の通りにシート3つに分かれて存在しています。
どのようなマクロを組めばいいかお教え願いたいです。
ジャンルごとに変数というものを持たないといけないのでしょうか?
実際は母が使うので、ボタン一つで出来るのだとありがたいのですが・・・
大変面倒な質問ですが、お願いします

コードを教えてくださいお願いします
正確なコードが出るまで居座ります
嘘の答えも言い続けます
0713デフォルトの名無しさん2014/06/12(木) 22:33:24.33ID:JgOg9e9B
>>709
お前は黙っとけw>>710が普通
0714デフォルトの名無しさん2014/06/12(木) 22:35:53.98ID:JGtl8L6J
頼むから教えてくれ本当に困ってるんだ
私が馬鹿な人間なのは分かっているし、これが自分のためのものなら諦めるけど
本当に困ってるんですお願いです
07157042014/06/12(木) 22:49:20.79ID:yqko6Nwn
ありがとうございます!
0716デフォルトの名無しさん2014/06/12(木) 22:50:33.31ID:JGtl8L6J
>>715
私の質問のコード教えてくれませんかお願いします
本当に困ってるんです助けると思ってお願いします
0717デフォルトの名無しさん2014/06/12(木) 22:54:21.41ID:FQgQ1zJa
いいかげんにしろババア人にもの頼むときはまずマンコぐらいさらせ
0718デフォルトの名無しさん2014/06/12(木) 22:58:24.36ID:leNeVPHt
>>706

Sub TotalAmount()
Dim dbCon As ADODB.Connection
Dim strsql As String
Dim dbRes As ADODB.Recordset
Dim Col As Long
Dim Row As Long
Set dbCon = New ADODB.Connection
With dbCon
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Extended Properties") = "Excel 8.0"
.Open ThisWorkbook.FullName
End With
strsql = "SELECT B.ジャンル ,SUM(A.価格) AS 合計金額 FROM [Sheet1$] A INNER JOIN [Sheet2$] B ON A.通し番号 = B.通し番号 GROUP BY B.ジャンル"
Set dbRes = New ADODB.Recordset
dbRes.CursorLocation = adUseClient
dbRes.Open strsql, dbCon, adOpenDynamic, adLockOptimistic, adCmdText

つづく
0719デフォルトの名無しさん2014/06/12(木) 23:00:50.52ID:leNeVPHt
つづき

With Worksheets("sheet3")
.Cells.ClearContents
For Col = 1 To dbRes.Fields.Count
.Cells(1, Col).Value = dbRes.Fields(Col - 1).Name
Next Col
Row = 1
Do Until dbRes.EOF
Row = Row + 1
For Col = 1 To dbRes.Fields.Count
.Cells(Row, Col).Value = dbRes.Fields(Col - 1).Value
Next Col
dbRes.MoveNext
Loop
End With
dbRes.Close: Set dbRes = Nothing
dbCon.Close: Set dbCon = Nothing
End Sub

こんな感じ。

シート1,2に設定しとけばシート3に書き出すよ。
ただし、Microsoft ActiveX Data Objects 2.8 Libraryの参照設定をきっとくこと。
0720デフォルトの名無しさん2014/06/12(木) 23:02:10.06ID:JgOg9e9B
>>716
VLOOKUPとSUMIFで出来るからまじで
1.ジャンル分けしたいデータ4列目にジャンル列追加
2.ジャンル列にVLOOKUPでジャンルを設定
3.合計金額列にSUMIFでジャンル毎の集計値を設定
0721デフォルトの名無しさん2014/06/12(木) 23:07:09.27ID:JGtl8L6J
>>719
ユーザー定義型は定義されていませんってでます

> Microsoft ActiveX Data Objects 2.8 Libraryの参照設定をきっとくこと
これはどうしたらできます?
調べても出てきません
だまされてますか?
0722デフォルトの名無しさん2014/06/12(木) 23:10:35.81ID:leNeVPHt
>>721
おんぶにだっこだなぁ。
VBEでツール→参照設定でそれを選んでOK押せば参照してくれるから。
0723デフォルトの名無しさん2014/06/12(木) 23:13:09.28ID:JGtl8L6J
>>722
それにはチェック入ってませんでした
調べたらDAOなんたらってのにチェック入れたらいけるって書いてましたが
チェックいれたらDLLエラーってでました。
もっと簡単に出来る方法ないんでしょうか
もうしにたくなってきました
0724デフォルトの名無しさん2014/06/12(木) 23:19:00.19ID:leNeVPHt
>>723
いやだからチェック入れないと。
今回使っているのはDAOじゃなくてADOだから。
0725デフォルトの名無しさん2014/06/12(木) 23:32:14.62ID:leNeVPHt
さて、コードも書いたことだし、
とりあえずID:paP2EzQvは死んでくれないかな。
0726デフォルトの名無しさん2014/06/12(木) 23:57:38.17ID:DSeU12c2
>>710-711

A.xlsにあるマクロでB.xlsを開くんだったら
開いてからアクティブなブックをオブジェクト変数にセットするより
開くときにオブジェクト変数に直接突っ込んだ方が早くない?

Dim bookB As Workbook
Set bookB = Workbooks.Open(B.xls)

とかやっとけばいっぺんで終わる
0727デフォルトの名無しさん2014/06/13(金) 00:05:35.25ID:3uExzG0V
>>726
うん。そう出来るんなら
外部からアクティブなブック変えられても安全だね。
0728デフォルトの名無しさん2014/06/13(金) 01:02:52.06ID:mgi5uvuR
vbaと直接的に関係あるかは微妙ですが、Excelマクロブックがたまに壊れてしまいます。開いてマクロを起動するとエラーを起こして強制終了になるのです。
たいていその時は他のいくつかのマクロにまで同様の被害を出し、困っています。

今のところは、作業ブックとマクロブックは必ず分けて、さらにメモ帳でマクロのプログラムを保存しておいて、もし壊れたらマクロブックは捨てて新しく作り直して対処しています。

ただ、作業ブックで直接マクロを呼び出せれば非常に便利なのでそれを検討しています。

質問は二つです
1)壊れる理由はなんなのでしょうか?
2)普通の作業ブックにマクロを用意すると、上記のように壊れたとき作業ブックごと壊れそうで怖いです。
壊れると思うとためらってしまいます。何か良い対処法はありませんか?
0729デフォルトの名無しさん2014/06/13(金) 02:05:30.86ID:/KfsTB1C
>>728
マクロが壊れるってどういうこと?VBAのソースが書き換わってるの?
別のパソコンでは試した?
0730デフォルトの名無しさん2014/06/13(金) 02:25:20.51ID:QETwEf+A
>>728
自分自身マクロが壊れた経験は無いし、知人からも聞いたこと無いけど、
そういう理由ではなくマクロのブックとデータのブックは大抵別にしてるよ。

俺の仕事だと大抵の場合年度ごとにデータは変わるから、
マクロ入りのブックを毎年更新するのは面倒くさい。
マクロを別にしとけばデータブックだけ変えて作業できる。
もちろん、年度の指定はマクロで出来るように作ってある。

まぁ、一回コッキリの作業だったら
マクロ入りのブックにデータも入れ込むのもアリだと思うけど、
そうでなければ別体にしといたほうが作業性は上がるよ。
07316732014/06/13(金) 02:25:26.50ID:C2eUWGFh
>>674
確かに開いているファイルのサイズは小さくないし(ファイル1が8Mバイト、ファイル2が44Mバイト)、
PCもそれほど速いわけでもないけど、やっぱリソース不足なんかな。
Variant型のグローバル変数を使ってるとかも関係しているんだろうか?
リソース不足以外に、ファイルを複数開いている時にマクロが遅い原因はありますか?
0732デフォルトの名無しさん2014/06/13(金) 04:55:30.41ID:hNNRznvy
>>728
間違ったデータを処理しているのかも?
0除算、オーバーフロー、型変換の失敗など

またエラーが出たときに、すべてのデータを破棄せず、
中途半端な状態で、ファイルなどに書き込むと、
次回そのファイルを読み込んだら、またエラーが起こる

ログファイルを作って、すべてのデータのIn/Out、
つまり、データを読み込んだ所と、演算後を記録して、
エラーが起こる瞬間をとらえる
0733デフォルトの名無しさん2014/06/13(金) 07:26:02.30ID:kHczDXdC
>>729
動作が停止するのでどうなっているかはわかりません
うちの周りではわりとよくあることのようですし、私自身1年で2回壊れています

別のpcでは試していません。windows7,8、office2010で起こります
>>730

別にしておくのは良いことも多いですがボタンのようなものがあればなおいいなとおもいまして。

>>732
後だしで申し訳ないのですが、やらせているのはファイルを開く閉じるコピーペーストのみですので計算をやらせたりはしていません
0734デフォルトの名無しさん2014/06/13(金) 08:17:22.92ID:LRXbjNk5
xlsは割と壊れる
0735デフォルトの名無しさん2014/06/13(金) 20:38:36.57ID:3uExzG0V
あー、余り聞かない話だろうけどさ、
以前ファイルサーバーでフォルダ階層深いところに、
EXCELのファイル置いて開いたら壊れることがよくあったよ。
なんかVBエディタでオブジェクトブラウザで見ると、シートの部分が青くなったりしてた。
0736デフォルトの名無しさん2014/06/14(土) 14:18:26.82ID:Je/qq0DA
>>728
俺の体感では
システム側の問題でマクロ付きのエクセルファイルが壊れるのは、それ以外のファイルが壊れるのと差はない
マクロでおかしなことやってるか、マクロ関係なくファイル壊れるような環境かのどっちかが疑わしい

>>731
リソースの競合

>>735
パス長の問題で読み書きできないんじゃないのか?
0737デフォルトの名無しさん2014/06/14(土) 15:36:29.51ID:UnUM1hDE
http://peace.2ch.net/test/read.cgi/tech/1342087380/
こちらで質問したのですが、

こちらのスレのほうがよかったのですかね?
708です
0738デフォルトの名無しさん2014/06/14(土) 21:48:17.67ID:ez0d87W9
>>736
> マクロでおかしなことやってるか、マクロ関係なくファイル壊れるような環境かのどっちかが疑わしい
まじにこんな事言う人始めて見たw
0739デフォルトの名無しさん2014/06/15(日) 09:58:44.35ID:2EJJf8nr
A列の1行目から最終行まで処理を繰り返すにはこれで良いかと思うのですが
B列に値が入っていない所から同じ処理をさせるようにするにはどうすればよいのでしょうか?

For wRow = 1 To Range("A" & Rows.Count).End(xlUp).Row
・・・
・・

Next

 A B
1 x x
2 x x
3 x x
4 x    ←この列から処理を始めたい
5 x
0740デフォルトの名無しさん2014/06/15(日) 10:14:00.30ID:QD8jtgNH
>>739
Dim FirstB As Long
FirstB = Range("B1").End(xlDown).Offset(1).Row

For wRow = FirstB …
0741デフォルトの名無しさん2014/06/15(日) 11:40:26.86ID:2EJJf8nr
>>740
早々のレスありがとうございます。
上手くいきました!作業効率があがり助かりました!
0742デフォルトの名無しさん2014/06/15(日) 21:21:01.30ID:2EJJf8nr
>>740
度々すみません
この処理を仮に6行目からスタートさせるにはどうすればいいのですか?
0743デフォルトの名無しさん2014/06/15(日) 21:24:01.33ID:QD8jtgNH
>>742
B1をB6に変えればいいよ。
0744デフォルトの名無しさん2014/06/15(日) 22:09:31.20ID:2EJJf8nr
>>743
ありがとうございます。初歩的な質問ですみませんでした
0745デフォルトの名無しさん2014/06/17(火) 03:05:20.46ID:1LOl6xrI
クラス名の後にドットを入力してもクラスのパブリックなプロシージャが
候補に出てきません。エクセル2002の仕様ですか?
0746デフォルトの名無しさん2014/06/17(火) 03:10:24.91ID:1LOl6xrI
それと、あるサイトで分からない表現があったのですが
[_END]の[]で括るのは、どういう意味ですか?

Enum Area
 West = 0
 East
 [_END] = -1
End Enum
0747デフォルトの名無しさん2014/06/17(火) 03:59:06.43ID:jPdOoXg3
>>746
セル範囲の名前の定義
0748デフォルトの名無しさん2014/06/17(火) 10:25:10.56ID:X2vvvV0A
オブジェクト変数をオブジェクト変数に代入するとどうなりますか?
0749デフォルトの名無しさん2014/06/17(火) 10:25:54.01ID:X2vvvV0A
配列変数も配列変数に代入するとどうなりますか?
0750デフォルトの名無しさん2014/06/17(火) 10:26:46.03ID:X2vvvV0A
↑このへんのことをたとえ1年くらいVBAを使ってなくてもすぐに思い出せるようにしておくいい方法はありますか?
0751デフォルトの名無しさん2014/06/17(火) 10:36:51.26ID:l2MahTzn
>>746
通常指定できない変数名を使うときに[]でくくると言うVBAのルール
ExcelVBAとして>>747の使い方する時もあるけど、>>746のはそれじゃない

ちなみに_で始めた列挙名は非表示メンバになって、通常の入力補助とかに出てこない
オブジェクトブラウザで 非表示のメンバを表示 にして確認できる
0752デフォルトの名無しさん2014/06/17(火) 10:41:48.38ID:Yj2sqA8/
>>745
クラス名そのものではなく
クラス名を型として宣言した変数の後にドットを入力しましょう

それでもダメなら、どこかにコンパイルエラーがあると思うので
メニューの デバッグ > VBAProjectのコンパイル で確認しましょう

>>747
コードエリアで使う場合と、宣言エリアの列挙型で使う場合とでは意味が違うよ

>>746
列挙型では、_ で始まる名前を [ ] で囲むと、入力候補に表示されないメンバを定義できる
これは、_で始まるメンバは非表示メンバになるのと、[ ] で囲むと通常使えない名前を定義できるのとの合わせ技です

>>748
オブジェクト変数をオブジェクト変数に代入するとエラーになります
オブジェクト変数をオブジェクト変数に参照代入すると、参照代入先のオブジェクト変数でも
元のオブジェクト変数が参照しているオブジェクトを参照できるようになります

>>749
可変要素数の配列変数への代入では、元の配列変数のコピーが作成されます
固定要素数の配列変数への代入では、要素数が同じでもエラーになります
0753デフォルトの名無しさん2014/06/17(火) 12:09:43.40ID:l2MahTzn
>>752
コードエリアとか宣言エリアとか
参照代入とか
微妙な俺様用語使うのやめれ
07546622014/06/17(火) 15:43:08.43ID:ZBiDicGQ
>>662についてどなたかアドバイスお願いします。 m(__)m
0755デフォルトの名無しさん2014/06/17(火) 17:05:41.46ID:HVt3rccc
cnt=1の時と場合わけする方法で良いと思います。
0756デフォルトの名無しさん2014/06/17(火) 18:58:25.63ID:Oy7I6t4I
>>754
こんな方法はどうだろうか?

3x1 の配列でTranspos問題でるなら

  ReDim Preserve TestArray(1 To 3, 1 To cnt + 1)

として 3x(cnt+1) の配列でReDimして Transposする

んで読み込む時は 配列の1次元目の最終データ
つまり
 TestArray(cnt+1, 1)
 TestArray(cnt+1, 2)
 TestArray(cnt+1, 3)
は無効データとして無視する
0757デフォルトの名無しさん2014/06/17(火) 21:32:49.72ID:l2MahTzn
>>754
Transposeの仕様っぽいから、1次元の配列になるのはどうしようもないんじゃない

そもそもWorksheetFunction.Transpose使う必然性がわからん
俺なら配列そのもの変換せずに、読む方で行列入れ替えて読むが
どうしても配列変換したければ自分で配列変換する関数作る
0758デフォルトの名無しさん2014/06/17(火) 23:57:50.59ID:SruwTgIk
スクロールロックキーを押してないのに
勝手にスクロールロックされるという怪現象に長年悩まされてます
これまでは発生頻度が低いから気にしてなかったのですが、
最近バーコードリーダーを接続したPCで頻繁に発生するようになりました

あまりにうざいので、VBAで対抗しようと考えて
まずは Call Application.OnKey("{SCROLLLOCK}", "") としてみたのですがダメでした
何か良い方法ないでしょうか

SCROLLLOCKのON/OFFを判定して、
ONならOFFにする方法なんて無いでしょうか
0759デフォルトの名無しさん2014/06/18(水) 00:03:23.37ID:EzL2wKEq
一番いいのは、VBAで対処なんて余計なこと考えずにそのPCをさっさと修理に出すことだな
0760デフォルトの名無しさん2014/06/18(水) 00:05:05.34ID:0b/GVhNi
>>752
どうもありがとうございました!
0761デフォルトの名無しさん2014/06/18(水) 00:47:57.54ID:+FU8wlvZ
>>758
「勝手にスクロールロック」でぐぐったらこんなん出た。
マウスのチルトホイールが悪さしてたらしい。
http://orbit.cocolog-nifty.com/supportdiary/2009/08/post-2f3e.html
07626622014/06/18(水) 07:46:00.29ID:SiDz/mVA
>>755>>756>>757 ありがとうございます。
Transposeの仕様であるなら仕方ないですね。
今はcnt=1かどうかの場合分けで対応しています。

>>756
提案ありがとうございます。なるほど、そのようにしてTransposeで1次元となることを避けることができるのですね。
参考になります。この方法ならコードの修正部分も少なさそうです。

>>757
仰るようにTransposeを使う必然性はありません。
今の知識がありゼロから作り始めるならTransposeは使わずに作ると思います。
昔の名残を活用するために必然性のないTransposeを使う羽目になってしまいました。
時間ができたら全部書き直したい気持ちはあるのですが。。。
0763デフォルトの名無しさん2014/06/18(水) 08:21:57.79ID:ahd+98VX
>>753w
0764デフォルトの名無しさん2014/06/18(水) 10:15:27.45ID:fAjoLlg4
>>759
>>761
PCもキーボードもマウス何回か換えてるし
EXCELも2000から2013にかけて何回か乗り換えてるから
違う原因と思うんですが
07657612014/06/18(水) 10:36:30.12ID:+FU8wlvZ
>>764
んじゃこっちはどう?

http://blog.livedoor.jp/sigh_too/archives/51273110.html

ctrl + c と間違えて Fn + c を押しちゃってた人の話
0766デフォルトの名無しさん2014/06/18(水) 10:39:53.19ID:+FU8wlvZ
スクロールロックの割り当てが
Fn + K とかの場合もあるって事で機種によって違うみたいね。
0767デフォルトの名無しさん2014/06/18(水) 12:31:44.62ID:k5Dh+D1T
>>764
ここでもそんな相談は見たことないし、検索でもほとんど出てこないので、
何か特別なソフトが原因じゃないのかなあ
一般人が使わないようなアプリが入っているとか、変なマクロが走っているとか

そのパソコンはあなた専用?それとも共用?
0768デフォルトの名無しさん2014/06/18(水) 12:35:01.13ID:k5Dh+D1T
>>764
いつもまったく気付かない?
一度でもスクロールロックされる瞬間を目撃したことはある?
その時、パソコンは使用中か放置中だったか
0769デフォルトの名無しさん2014/06/18(水) 17:42:06.75ID:fAjoLlg4
下の2件と同様です
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13105571298

http://okwave.jp/qa/q6865033.html

すばやく連続入力して一呼吸おいた後に、次の入力を始めようとして
あれ?と気付くことが多いような気がします
入力中に突然ロックされたことはないと思います
PCは基本的に自分専用です。

発生頻度は1〜2ヶ月に1回くらいでしょうか
バーコードリーダーの場合は接続して間もないですが、
1日に1〜2回は出ていそうです。
PS2接続です。
0770デフォルトの名無しさん2014/06/18(水) 19:27:12.46ID:x3SERBGR
質問です。
金額計算なんですが、例えばM列に1を入れるとK+Lの合計を0.5倍にして(何も入れないとK+Lの合計)N列に表示するっていう文を作りたいんですが、色々調べてもわかりません
よろしければ教えて下さい!
0771デフォルトの名無しさん2014/06/18(水) 19:46:58.78ID:EzL2wKEq
何がどう判らないのかが判らないし、シートがどうなってんのかも知らんけど

Dim i As Integer
Dim lastrow As Integer

For i = 1 To lastrow
If Cells(i, 13).Value = 1 Then
Cells(i, 14) = (Cells(i, 11) + Cells(i, 12)) * 0.5
Else
Cells(i, 14) = Cells(i, 11) + Cells(i, 12)
End If
Next
0772デフォルトの名無しさん2014/06/18(水) 19:48:50.42ID:/mM+tAme
選択された複数のセルで
重複するものは代表1つだけにして
その要素数の数だけ文字列型の配列変数を返り値とする関数を作りたいです。

コードをお願いします。
0773デフォルトの名無しさん2014/06/18(水) 20:01:04.29ID:ZRwyQinV
>>772
Selection.Uniquify
0774デフォルトの名無しさん2014/06/18(水) 20:38:45.97ID:/mM+tAme
>>773
こら。そんなのないぞ。
0775デフォルトの名無しさん2014/06/18(水) 21:22:12.13ID:+FU8wlvZ
なんか手を変え品を変え
同じ質問を繰り返している人がいるように思えるのは俺だけ?
Dictionaryとか自前で配列変数作るとかやりようはそれなりにあると思うけど。
0776デフォルトの名無しさん2014/06/18(水) 23:31:09.78ID:IQKBzqn4
宿題なんじゃね
0777デフォルトの名無しさん2014/06/19(木) 06:51:10.55ID:Wcq0Jv47
>>772
へい。
https://friendpaste.com/7AESsKfoWV1tNVQmlhrMgY
0778デフォルトの名無しさん2014/06/19(木) 07:19:42.28ID:NPfluINM
「関数を作りたい」に違和感。じゃあ勝手に作れよ
「関数が必要」とか「作って欲しい」って書け
0779デフォルトの名無しさん2014/06/19(木) 11:17:24.00ID:Oioydr8f
>>777
こら、VBAで使えないぞ。
本当にVBAの言語用なのか?
0780デフォルトの名無しさん2014/06/19(木) 11:33:56.90ID:YZPnLqDa
さっきまでボタン押してたら動いたマクロが押しても無反応になるのはなぜですか?無反応というのは、ボタンを押しても実行中にすらならないのです
停止もエラーも何もなく、ただ無反応
0781デフォルトの名無しさん2014/06/19(木) 11:39:54.47ID:w+8gDH2b
>>779
これはすごい恩知らずwww
間違いなくVBAで使えるぞ。
0782デフォルトの名無しさん2014/06/19(木) 11:52:02.14ID:w+8gDH2b
>>780
コードが書いてないからそれだけではなんとも分からないですよ。
あと、使ってるエクセルとOSのバージョンも書いてないし。
とりあえずステップインで実行してみてはどうですか?
0783デフォルトの名無しさん2014/06/19(木) 11:55:45.95ID:Oioydr8f
>>781
こら、ウソ言うな。
選択してMainを実行したら「インデックスが有効範囲にないぞ」というエラーが出る。
0784デフォルトの名無しさん2014/06/19(木) 12:09:33.27ID:w+8gDH2b
>>793
ためしに縦一列に文字だけ(数字は無視される)入れて、
その範囲を選択した状態でマクロ実行してみろよ
0785デフォルトの名無しさん2014/06/19(木) 12:13:22.03ID:w+8gDH2b
安価ミスった>>793じゃなくて>>783

ちょこっと手直しすると範囲が縦一列じゃなくて
数字も無視しないようになるけど
777さんに対してあまりにも無礼だからこれ以上は教えてやらない。
0786デフォルトの名無しさん2014/06/19(木) 13:25:10.11ID:Oioydr8f
>>785
そんなバグだらけじゃ使い物にならないじゃないか。
糞ボロ。ポンコツ。
0787デフォルトの名無しさん2014/06/19(木) 14:00:13.35ID:w+8gDH2b
だって初めに条件付けてないお前が悪いんだよ
だからあれはバグじゃなくて仕様
0788デフォルトの名無しさん2014/06/19(木) 14:00:36.50ID:8jNSzAvz
もう既に本人はいなくなっててなりすましの荒らしが暴れているだけ
解散
0789デフォルトの名無しさん2014/06/19(木) 14:26:30.45ID:z2Nts7io
>>782
すみませんなぜか再起動したら解決しました
0790デフォルトの名無しさん2014/06/19(木) 21:26:30.92ID:B42MAC9K
Endステートメントって使ってる人いますか?

Sub Test()
On Error Go To ErrorHandler

If hogeError Than
call EndProc
End If

call EndProc
ErrorHandler:
call EndProc
End Sub

Private Sub EndProc()
'インスタンスの破棄とかScreenUpdating =Trueとか
'プログラムの終了
End

End Sub

msdnとかだとEndステートメントはすぐに停止させる時だけ使えとかって書いてあるんだけど、この関数呼べば必ず綺麗に後処理できるから便利〜
と思ってたんだけどやっぱりダメなんすかね?
0791デフォルトの名無しさん2014/06/19(木) 21:49:00.62ID:zV78lioG
>>790
End使うとUnloadなしでフォームが閉じたりするから、綺麗に後処理できない
だから使うなって言われてる
0792デフォルトの名無しさん2014/06/19(木) 22:42:28.51ID:B42MAC9K
>>791
あ〜なるほど、そっかformのイベントエラーとかでEnd飛ばしちゃうとUnloadとかされないのか
やっぱりエラーは個別にやんなきゃダメっすね、ありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています