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

Excel VBA 質問スレ Part32

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

★1 質問テンプレ(雛形)は用意しませんが、OSとExcelのバージョンは必ず書きましょう。

★2 ExcelのVBA以外の部分に関する質問はNGです。
   但し、VBA無しでも出来ることだが、あえてVBAでやりたいって物に関してはOK。

★3 ExcelのVBE(Visual Basic Editor)を使うとしても、VBAの分野以外に関してはスレ違いです。

 VBAとは、『Visual Basic for Applications』の略で
  Application
  ├Workbooks
  |└Workbook
  |  ├Worksheets
  |  |└Worksheet
 というApplication以下のオブジェクトを、VB言語で操作するものを指します。
 例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
 セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。

★4 とりあえず、Excelのインスタンスを作らずにVB6で出来ることは全てスレ違いだと思ってください。

★5 レベルはどうあれ、ここはプログラマ用の板スレです。プログラマとは、自分でプログラムを組み、
   コードを書く人の事なので、自分でやるきは全く無く、丸投げしようって人はお断りです。
   ヒントを貰えばあとは自力でなんとかしますって人のみどうぞ。

★6 わからなければとりあえず「マクロの記録」(Alt, T, M, R)

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

関連スレ:VBAなんでも質問スレ
http://toro.2ch.net/test/read.cgi/tech/1342087380/
0558デフォルトの名無しさん2014/01/23(木) 20:13:31.82
>>549
1.まず入力セルの1つ上のセルに値が入っていたり入力セルが1番上だったら3へ。
2.End(xlUp)で自分より上のセルに値がある時のセル位置を求める。求めたセル位置に
値があればその1つ下のセルに、値がなければその位置に入力セルの値を入れて元の入力セルの値を消す。
3.入力セル(2を通っていたら2で値を入れたセル。以降入力セルと呼ぶ)の1つ左のセルに値が入っていたり入力セルが1番左だったら5へ。
4.End(xltoLeft)で自分より左のセルに値がある時のセル位置を求める。求めたセル位置に
値があればその1つ右のセルに、値がなければその位置に入力セルの値を入れて元の入力セルの値を消す。
5.処理を終了する。

多分こんな感じでループを使わないで出来る・・・ような気がする。
0559デフォルトの名無しさん2014/01/23(木) 20:25:59.04
>>557
いいねコレ、Linqも使えるのか。
ぱっと見た目、WorkSheetsもジェネリック扱いっぽいし。
ってことは多分、列や行もそんな扱いなんだろうね。
後は仕事場で使う許可が下りるかどうかだけど。
05605492014/01/23(木) 23:22:56.75
このスレのことだからVBAの達人がいっぱいいるのかと思いきや実にたいしたことがないな。
ちょっと1分間空想してるだけで下のコードを思いつき、動作確認すると問題なく動き一瞬で解決した。
たった4行で実現できることだよ。

Sub Unko()
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlUp
ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Select
Selection.Delete Shift:=xlToLeft
End Sub
0561デフォルトの名無しさん2014/01/23(木) 23:59:48.40
>>560
それで、だからどうしたの僕ちゃん
ほめて欲しいのかちゅら
すご〜イ、良く頑張ったわね、偉いわよ僕ちゃん
0562デフォルトの名無しさん2014/01/24(金) 00:03:57.36
へぇ、これは自演だったとしても凄いな。
次は30行でテトリス作ってみてよ。
0563デフォルトの名無しさん2014/01/24(金) 01:24:52.94
ここは質問スレだよ?雑談はどっかあっち行って
0564デフォルトの名無しさん2014/01/24(金) 01:26:27.06
>>563
自治厨うぜーぞ
誰もお前なんか必要としてないんだから早く消えろ
0565デフォルトの名無しさん2014/01/24(金) 01:55:32.38
ゴミじゃん
0566デフォルトの名無しさん2014/01/24(金) 07:27:32.48
>>560
ドヤ顔のとこ悪いけど、それって上と左に飛ばす対象セルの
下や右に入ってる値の入っているセルも一緒にずれない?
そうだとしたらコードもダメだけど、動作確認もダメダメだね。
0567デフォルトの名無しさん2014/01/24(金) 10:57:23.36
え?
0568デフォルトの名無しさん2014/01/24(金) 11:55:35.88
>>560
ゴミコードw
0569デフォルトの名無しさん2014/01/29(水) 23:46:00.47
VBAをある程度マスターしたいので
こんどはスマホで自作アプリをいっぱい作りたいです。

プログラミング言語は変わるんですよね?
どの入門書を読めばいいでしょうか?
VBAの知識があるのでプログラミング全般の基礎(変数の使い方、if文、for文、など)は省いて
android開発に特化した入門書を希望なのですが。
0570デフォルトの名無しさん2014/01/29(水) 23:59:50.67
>>569
スレチ
泥は基本Java
VBAの知識なんてほとんど役に立たん
0571デフォルトの名無しさん2014/01/30(木) 00:09:17.85
>>570
どういう意味?
これ?
http://www.geocities.co.jp/HeartLand/6622/potato.jpeg
0572デフォルトの名無しさん2014/01/30(木) 00:15:08.28
>>571
馬鹿かオメェは
580もjavaやれって言ってるだろ。

andoroidでどうしてVBAって発想がでてくるんだよ
0573デフォルトの名無しさん2014/01/30(木) 00:19:24.55
>>580
なるほどぉー。そうなんだー。
0574デフォルトの名無しさん2014/01/30(木) 00:20:19.41
プログラミング言語はVBAしか知らないからそういう発想だ、このやろう
0575デフォルトの名無しさん2014/01/30(木) 03:00:00.80
クラスモジュールAの中で、クラスモジュールBをインスタンス化して利用したり
クラスモジュール内から、標準モジュールのパブリックなプロシージャを呼ぶのは設計としてはアリですか?
0576デフォルトの名無しさん2014/01/30(木) 07:30:04.35
>>575
有り。
ただし、インスタンスを生成してる訳ではないので、
呼び出し先の内容はすべて一緒になることに注意。
0577デフォルトの名無しさん2014/01/30(木) 10:03:18.86
>>575
> クラスモジュールAの中で、クラスモジュールBをインスタンス化して利用したり
これはあり。

> クラスモジュール内から、標準モジュールのパブリックなプロシージャを呼ぶのは設計としてはアリですか?
これはお勧めできない。
詳しくは「結合度」でググれ。
0578デフォルトの名無しさん2014/01/30(木) 10:45:28.97
お勧めできないは過剰だろ
留意すべきことがあるなら理解できる
0579デフォルトの名無しさん2014/01/30(木) 11:04:28.31
>>578
危険がありすぎるので過剰とは思わない。
0580デフォルトの名無しさん2014/01/30(木) 11:29:33.90
>>579
コメントに書くとかUMLで管理するとかいくらでもフォローきくじゃん
標準なパブリックは使わないならその需要はどうやって埋めてんの?
0581デフォルトの名無しさん2014/01/30(木) 11:35:19.10
>>580
> コメントに書くとかUMLで管理するとかいくらでもフォローきくじゃん
そういう問題じゃなくて、結合度やカプセル化の問題。

> 標準なパブリックは使わないならその需要はどうやって埋めてんの?
使わないとは言ってないよ。クラス内部からは呼ぶべきではないと言ってるだけ。
0582デフォルトの名無しさん2014/01/30(木) 12:36:50.72
>>581
>クラス内部からは呼ぶべきではない
その代替案をご教示賜りたく
これで疑問は全て解消される気がする
0583デフォルトの名無しさん2014/01/30(木) 12:39:05.54
>>582
> その代替案をご教示賜りたく
代替案も何も、俺は基本呼ばないから代替案も糞もないんだが。
0584デフォルトの名無しさん2014/01/30(木) 12:40:36.33
ひょっとして、他言語で言うUtilityクラスにまとめると言えば納得するのかな?
0585デフォルトの名無しさん2014/01/30(木) 13:29:20.03
あーそういうことかー
じゃあやっぱり留意すべき程度じゃないのか
0586デフォルトの名無しさん2014/01/30(木) 14:02:40.66
Utilityクラスのメソッド呼ぶのも標準モジュールのパブリックメソッド呼ぶのも、あまり変わらんと思うけどなぁ。
好きにすればいいんじゃないかな。
0587デフォルトの名無しさん2014/01/30(木) 14:14:19.76
別にUtilクラスなんか作らなくても、標準モジュール名をUtilに変更してUtil.hoge()とか呼べばいいじゃん
0588デフォルトの名無しさん2014/01/30(木) 15:52:36.82
>>584-587
>>577は結合度の問題だっていってるだろ
そのUtilクラスなり標準モジュールなりに依存するようになるから
クラスの独立性が保てなくなるって話だろ

設計方法論の話であって実装の問題じゃないからな
他のモジュールに依存するクラスを良しとするなら良し
ただし一般的なクラス設計では、他のクラス(モジュール)への依存度は低い方が良いとされてる
0589デフォルトの名無しさん2014/01/30(木) 16:03:53.46
>>587に賛成
0590デフォルトの名無しさん2014/01/30(木) 16:22:09.70
>>588
標準モジュール名をUtilに変更して使うのと、C++でstd namespaceにある奴を使うのと、そんなに違いはないと思うけど
0591デフォルトの名無しさん2014/01/30(木) 17:36:51.01
標準モジュールの名前なんてどうでもいいんだけど、何でそこにこだわってる?
標準モジュール使うのにモジュール名で修飾することなんてほとんどないぞ
もしかして、標準モジュールってそこにメソッドなりがシステム側で用意されてると思ってるのか?

システム側で用意されているものに依存するのと
ユーザ側で用意するのものに依存するのと
そんなに違わないと思うならそれでいいんじゃないかね
0592デフォルトの名無しさん2014/01/30(木) 18:23:41.57
>>591
> 標準モジュールの名前なんてどうでもいいんだけど、何でそこにこだわってる?
> 標準モジュール使うのにモジュール名で修飾することなんてほとんどないぞ

グローバルな何かを使うときに、気をつけないといけないのが名前衝突。
標準モジュールでも名前を付けて呼ぶときにそれで修飾しておけば、別の標準モジュールに同名のメソッドが作成されても問題無い。
加えて、他の言語でよくある「namespace」的な役割も持たせられる。

> もしかして、標準モジュールってそこにメソッドなりがシステム側で用意されてると思ってるのか?

何を言ってるんだかわからない。

> システム側で用意されているものに依存するのと
> ユーザ側で用意するのものに依存するのと
> そんなに違わないと思うならそれでいいんじゃないかね

Utilクラスを作ってそこに自作メソッドを入れて使うのと、標準モジュールに名前を付けて使うのに、それほど差はないよねって話。
0593デフォルトの名無しさん2014/01/30(木) 19:11:22.87
>>592
>Utilクラスを作ってそこに自作メソッドを入れて使うのと、標準モジュールに名前を付けて使うのに、それほど差はないよねって話。
依存関係においてはクラスだろうが標準モジュールだろうが大差ない

Utilクラスに依存するのはOKなのにUtil標準モジュールに依存するのはダメとかいうのは話がおかしい
つまり標準モジュール呼び出しの代替案がUtilクラスにまとめるってのはおかしな話だが、それは俺の意見じゃないぞ
0594デフォルトの名無しさん2014/01/30(木) 19:48:24.29
クソどうでも良い話が続いてますが、皆さんお気兼ねなく質問をどうぞ
0595デフォルトの名無しさん2014/01/30(木) 22:18:37.25
むしろUtilityクラスのようなものこそ共通結合で作るもので、
それこそ標準モジュール向きだと思うけどなぁ。

>>582
代替え案としては、クラスモジュールで作っておいて
そのインスタンスを、使う側のクラスのプロパティに設定して内部で使う。かなぁ。
0596デフォルトの名無しさん2014/01/31(金) 00:46:27.00
VBEをコードで操作ってどんな利用シーンがあるかね?
0597デフォルトの名無しさん2014/01/31(金) 06:18:42.27
>>596
て言うかそんなこと出来るのかね
0598デフォルトの名無しさん2014/01/31(金) 07:20:58.00
ソースやらフォームやらをファイルへ一括出力して保存してる
プロシジャを他のブックにエクスポートとか出来たりもしたんじゃなかったっけ
(俺には出来んけど)
0599デフォルトの名無しさん2014/01/31(金) 12:26:54.30
できるけど事前に設定が必要

ファイル - オプション - セキュリティセンター - セキュリティ センターの設定 - マクロの設定 - VBA プロジェクト オブジェクト モデルへのアクセスを信頼する
0600デフォルトの名無しさん2014/01/31(金) 12:43:20.84
A1:D3に何も入力されてないか、数字以外が入力されてる時にボタンでマクロ実行するとエラーを吐く事ってできますかね?
どこかに数字が入力されてる時はマクロ実行って感じで

OSは7、エクセルは2010使っています
よろしくお願いします
0601デフォルトの名無しさん2014/01/31(金) 13:54:53.98
できます
0602デフォルトの名無しさん2014/01/31(金) 16:53:24.38
ヒントを><
0603デフォルトの名無しさん2014/01/31(金) 17:59:38.26
すいません0の時もエラーで
0604デフォルトの名無しさん2014/01/31(金) 18:03:32.36
わかったかも
0605デフォルトの名無しさん2014/01/31(金) 18:14:47.51
ひんと
条件をチェックしたいタイミングのイベントプロシージャを作る
プロシージャ内で対象範囲をチェックする
0606デフォルトの名無しさん2014/01/31(金) 21:18:09.72
意外に難しいかも。
0をTextで見ようとすると、セル幅を縮めると#になってしまうし。
ここで難しいのは一点のみで、
0と空のセルの見分けだけ。
0607デフォルトの名無しさん2014/01/31(金) 21:33:39.18
ボタンを押したら実行なのでイベントは関係ない
0でも空白でもエラーなので見分ける必要はない

ほらもうできた
0608デフォルトの名無しさん2014/01/31(金) 21:34:36.44
つ クリックというイベント
0609デフォルトの名無しさん2014/01/31(金) 21:54:53.65
初心者で申し訳ないです
では、イベントプロなんちゃらってのは関係内という事でいいんでしょうか?
0610デフォルトの名無しさん2014/01/31(金) 22:12:46.74
flag = false
for each cel in range("A1:D3")
  flag = flag or (val(cel.value) <> 0)
next
if flag then
  処理
end if
0611デフォルトの名無しさん2014/01/31(金) 23:31:02.09
2ちゃんに来る前にググれよ
0612デフォルトの名無しさん2014/02/01(土) 06:16:32.91
>>609
いんにゃ、ボタンを作ると勝手に作られる関数があるでしょ。それがイベントプロシージャ。
微妙なのが関数を作っておいてシェイプとかでマクロの登録で設定した場合。
これはイベントプロシージャと呼べるのかと言えば
シェイプ押下時に起きるイベントで呼び出される設定がされた関数ってだけになるのか、
「それってイベントプロシージャってことじゃん」ってなるのかどっちだろ?
0613デフォルトの名無しさん2014/02/01(土) 07:02:12.88
>>612
シェイププロシージャ(コードが先でオブジェクト関連付けが後)にしよう
イベントプロシージャ(オブジェクトが先でコードが後)ではないことにしよう
0614デフォルトの名無しさん2014/02/01(土) 12:24:48.84
イベントで呼び出されるプロシジャがイベントプロシジャなんだから
後から関連付けようが自動的に作成されようがイベントプロシジャにきまってるだろが
0615デフォルトの名無しさん2014/02/01(土) 14:58:00.05
動かすことはできたのですが、理由がよくわからないので図書館いって勉強してきます
みなさん本当にありがとうございました
0616デフォルトの名無しさん2014/02/01(土) 21:04:47.99
動きゃ良いんだよ、動きゃ w
0617デフォルトの名無しさん2014/02/01(土) 22:27:12.53
意味わかったわw
>>610さん賢いなぁ
0618デフォルトの名無しさん2014/02/02(日) 06:22:16.18
賢くないだろw
冗長だし
0619デフォルトの名無しさん2014/02/02(日) 07:41:58.11
1行で書けるもんな
行儀のいい書き方でも3行
0620デフォルトの名無しさん2014/02/02(日) 17:07:18.39
選択したセル範囲にぴったりと重なった四角のオートシェイプをつくりたいのですが、幅と高さの指定をどうすればいいのかわかりません。
0621デフォルトの名無しさん2014/02/02(日) 17:15:35.15
>>619
1行での書き方もしよければ教えてください
0622デフォルトの名無しさん2014/02/02(日) 18:27:28.63
>>620
width、height
0623デフォルトの名無しさん2014/02/03(月) 20:23:54.81
じゃあ、整数x〜yの範囲でz個の重複しない乱数を求めるには
どういうコードを書けばいいですか?

いいアルゴリズムが思いつきません。
乱数を発生させたたびにそれまで発生させたすべての乱数と重複がないか調べ
なければ次の乱数、あればやりなおし、
というアルゴリズムよりいい方法はありますか?
0624デフォルトの名無しさん2014/02/03(月) 21:33:24.65
スレ違い

ここはとりあえず結果が出せればOKなスレ

アルゴリズムを詰めていって最適化する話は余所でどうぞ
0625デフォルトの名無しさん2014/02/03(月) 21:33:50.25
またお前かという感じ
0626デフォルトの名無しさん2014/02/03(月) 22:40:14.82
345 デフォルトの名無しさん 2014/01/05(日) 12:20:51.84
>>339の回答を知りたいんだけど
z個の乱数をx〜yの範囲で発生させ
それらが同一のものが1つもないかどうか調べて (←このアルゴリズムも簡単ではないが)
なければそれで終了、あればまた最初からやりなおし、
という方法はどう?
もっといい方法ある?

623 デフォルトの名無しさん 2014/02/03(月) 20:23:54.81
じゃあ、整数x〜yの範囲でz個の重複しない乱数を求めるには
どういうコードを書けばいいですか?

いいアルゴリズムが思いつきません。
乱数を発生させたたびにそれまで発生させたすべての乱数と重複がないか調べ
なければ次の乱数、あればやりなおし、
というアルゴリズムよりいい方法はありますか?


ふーむ
06276232014/02/03(月) 23:03:17.99
天才的な方法を思いついた。
z個の乱数がほしいから
とりあえず範囲を1ずつ減らした範囲でz個の数列を作る。
そのあとに数決定する。
どうだ?
天才的だろう。

わからない人のために具体例を挙げる。
1から10の範囲で3個の乱数なら
次の範囲内で3個の乱数を発生させる
a= 1〜10
b= 1〜9
c= 1〜8

そして出力の3つの数は10人の人が並んでると想像して
最初の数はa番目に並んでる人。
2番目の数はスペースは詰めてb番目に並んでる人。
3番目の数はスペースは詰めてc番目に並んでる人だ。
0628デフォルトの名無しさん2014/02/03(月) 23:05:08.56
>>374のアルゴリズムが劣るのは、3つの数値の組み合わせによっては時間がかかる。
0629デフォルトの名無しさん2014/02/03(月) 23:28:46.88
>>628
いや、これ以上は恐らく無いだろ。
ソートもちゃっかり兼ねているw
0630デフォルトの名無しさん2014/02/03(月) 23:28:51.82
はい次の方〜
0631デフォルトの名無しさん2014/02/04(火) 00:07:09.11
x-yの数字をランダムに並べ替える
先頭からz個取る
終了
0632デフォルトの名無しさん2014/02/04(火) 00:18:21.61
>>621
If WorksheetFunction.CountIf(Range("A1:D3"), ">0") + WorksheetFunction.CountIf(Range("A1:D3"), "<0") Then 処理
0633デフォルトの名無しさん2014/02/04(火) 00:21:47.43
xとyは整数って書いてあるけど、その間の乱数も整数って条件なの?
0634デフォルトの名無しさん2014/02/04(火) 00:22:30.81
>>629
乱数だろ?ソートしていいんか?
0635デフォルトの名無しさん2014/02/04(火) 11:50:31.33
>>633
まえにどっかで見たときの話ならそう言う条件だったはず
実数でいいなら、数千個の乱数出力とかでもなければ単純に繰り返して重複チェックするんでいいんじゃね
数千個の乱数欲するけど重複はダメってなら、乱数の使い方がおかしいと思うぞ
0636デフォルトの名無しさん2014/02/04(火) 23:23:36.85
>>631
並べ替えは何回くらいやるの?
多くやらないとちゃんとまざらないし
x-yの範囲が広いときはさらに並べ替えの回数はものすごく多くしないといけない問題がある。
0637デフォルトの名無しさん2014/02/05(水) 03:43:18.23
1番目の要素をランダムな要素と入れ替える
2番目の要素をランダムな要素と入れ替える
以下x-yまでの要素数まで繰り返す
入れ替え回数はx-yの要素数と同じでいいだろ
要素数に対して必要な数が少ないなら効率的ではないけど、それなら単純な重複チェックでいいから
まあとりあえずこれ以上はどっかアルゴリズムのスレ探してそっち行け
0638デフォルトの名無しさん2014/02/05(水) 09:39:16.44
>>637
入れ替え入れ替えとあなたおっしゃったけどね
その入れ替え自体のアルゴリズムも考える必要があるんです
あなたとは違うんです
0639デフォルトの名無しさん2014/02/05(水) 10:44:19.76
本当の乱数は、同じ数字ばかり何回も続けて出たり、1・2・3・4と順番に出ることだってある
あらゆる可能性が平等なのが乱数

だから「よく混ざる」ってのは乱数の定義と矛盾する
それは本当の乱数ではなく、乱数のうちの1パターンを人間の意思で選んでいる(または拒否している)
人の意思が入った時点でそれは乱数ではなくなってしまう
0640デフォルトの名無しさん2014/02/05(水) 14:22:39.33
>>639
袋に最小から最大の数字を各々書いた玉があって
それを戻さないで取っていくとどうなるかを
コンピュターの乱数機能を利用して実現してるだけだから
そんな乱数の定義とは関係ない。
0641デフォルトの名無しさん2014/02/05(水) 16:07:27.16
答え出たね!
0642デフォルトの名無しさん2014/02/05(水) 16:16:06.35
ソース(n)
For i To n
ソース(i) = i
Next
while n > 0
データ(i) = ソース(random)
n ー 1
i + 1
LOOP
0643デフォルトの名無しさん2014/02/06(木) 04:12:42.33
「乱数自体の数値を得る」ではなく
「乱数を使って並べ替える」みたいなものだからな
0644デフォルトの名無しさん2014/02/06(木) 10:46:18.47
「ランダムに選ぶ」のと「乱数」は違う

前者の場合、もし最初に引いたのが「1」だったら、2回目は1が出ないことが確定してしまう
乱数なら次も1になる可能性がある

数学的に言えば確率論の中の順列の問題
ビンゴとサイコロの違いと言えばわかりやすい
質問者がわかってない
0645デフォルトの名無しさん2014/02/06(木) 13:55:18.98
そろそろ別の所でやって
0646デフォルトの名無しさん2014/02/19(水) 17:38:52.21
Sub xからyのz個の乱数重複なし()
Const x As Long=0,y As Long=1000000,z As Long=500000
Dim i As Long,j As Long,k As Single,bool As Boolean,Flag(x To y) As Boolean
'処理
Randomize
Do
bool=z>j
If bool Then k=(z-j)/(y-x-j+1) Else k=1-z/j
For i=x To y
If (Flag(i) Xor bool) And Rnd<=k Then
Flag(i)=Not Flag(i)
If Flag(i)Then j=j+1 Else j=j-1
EndIf
Next
Loop Until j=z
'表示
j=1
For i=x To y
If Flag(i)Then
ActiveSheet.Cells(j,1).Value=i
j=j+1
EndIf
Next
End Sub
0647デフォルトの名無しさん2014/03/05(水) 07:35:56.11
http:〃20m.ziploader.net/dl.phpx?id=ziploader2062
★zipファイルの「阪神近鉄無」フォルダー以下
「平成25年12月」「平成25年11月」の数値未発表で一部合計値比較不可能の為
 平成25年10月〜平成13年4月は以下路線の各駅を合計・増減から除外して再計算。
 「阪神」─「本線」「なんば線」
 「近鉄」─「難波線」「大阪線」「南大阪線」
★zipファイルの「阪神近鉄有」フォルダー以下
 除外せず、「平成25年12月」「平成25年11月」の未発表数値を前年同月と同一と仮定
0648デフォルトの名無しさん2014/03/06(木) 23:19:40.48
質問させていただきます。

B600に関数が入っていて
B601には空白です。
B602にも関数が入っていて
B603は空白です。

こんな感じで、Bの1700行まで関数が一行置きに入っているのですが、セルの結合を二行ずつしたいと思っています。
どういう風な記述になりますでしょうか?
0649デフォルトの名無しさん2014/03/07(金) 00:11:16.39
>>648
For r = 600 To 1700 Step 2
 Range(Cells(r, 2), Cells(r + 1, 2)).Merge
Next
0650デフォルトの名無しさん2014/03/07(金) 00:51:11.60
>>649
ありがとうございます!!!

もうひとつお聞きしたいのですが、、、
0651デフォルトの名無しさん2014/03/07(金) 01:01:27.94
Private Sub Worksheet_Change(ByVal Target As Range)

If Cells(Target.Row, "E").Value = "新" Then
Application.EnableEvents = False

On Error Resume Next
If Not (Intersect(Target, Range("H:H")) Is Nothing) Then
Cells(Target.Row, "G").Value = (1 - Cells(Target.Row, "H").Value) * Cells(Target.Row, "F").Value

End If

Application.EnableEvents = True

End If
End Sub
0652デフォルトの名無しさん2014/03/07(金) 01:04:46.69
H列に数値を入力したらG列に計算結果を表示するのですが、切り捨てにするにはどうすればよろしいでしょうか?
0653デフォルトの名無しさん2014/03/07(金) 07:39:53.10
vba 切捨て でぐぐればいっぱい出てくる
0654デフォルトの名無しさん2014/03/07(金) 08:25:53.28
VBの丸めは五捨六入だっけ?銀行丸めっつうの?
どハマりして結局関数を作った記憶があったようななかったような

とりあえず、G列はH列を参照するのならG列にエクセル関数を入れればいいよ

あとお節介だけど、プログラムが全く理解できてないみたいだけど、知識をつける必要がないのなら構わないけど、自分で調べた方がいいよ
0655デフォルトの名無しさん2014/03/12(水) 01:22:26.84ID:x9JPMObJ
無いに決まってるから聞いてんだろ。
おせっかいウザイ。さっさと回答くれ。
0656デフォルトの名無しさん2014/03/12(水) 01:45:28.79ID:ZXRx46ei
IDつけたのか
てすてす
0657 【9.6m】 2014/03/12(水) 01:46:00.18ID:ZXRx46ei
にょろーん
■ このスレッドは過去ログ倉庫に格納されています