dharry_ dharry_ 2012-08-15 01:31:49

[VBA] そいつは行じゃねえ。 このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

マルチバイトな変数にインテリセンスできることの方が個人的には驚いた記憶が。

Sub 関数()
    Dim シート1 As Worksheet
    Dim 行 As Integer
    Set シート1 = ThisWorkbook.Worksheets(1)
    For 行 = 1 To 10
        MsgBox (シート1.Cells(1, 行))
    Next
End Sub

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(8)

#1 oe_roel oe_roel 2012-08-15 01:34:09  

ついでに突っ込むと行にIntegerなんか使ってたらオーバーフローする。VBAでIntegerを使うべき場面は無い。

#2 Yamane_D Yamane_D 2012-08-15 13:42:06  

やっべww さっき久々にVBA組んだらInteger使っちゃってたよ!(笑) Thxなっ!

#3 _naruo _naruo 2012-08-26 04:14:00  

.Valueは付けるけどこれ普通にやっちゃう。何がまずいのかわからん。

#4 InternalServerE InternalServerE 2012-08-26 10:53:54  

投稿者の趣旨は「列番号を指定するべき箇所に"行"という変数名で値を突っ込んでいる。」
だと思うんですが、貴方はそれを「普通にやっちゃう」んですか。 それともIntegerの使用云々について言ってるのかな。

#5 math_neko math_neko 2012-08-27 00:13:37  

いくら VBA とはいえ関数名や変数名にマルチバイト文字はやはりいただけない…が、6 行目が香し過ぎて全部ぶっ飛んだ。

#6 hardtimes777 hardtimes777 2012-08-27 03:43:02  

シート名の初期値はSheet1のはずなのに、わざわざオブジェクト名を日本語にしてるあたりもなかなか。しかも「原価計算シート」みたいに具体的な名前にしないところもすてき。

#7 b863593 b863593 2013-01-08 23:52:57  

カッコが1組余分だな。

MsgBox シート1.Cells(1, 行)

#8 inqbus9 inqbus9 2014-04-22 23:15:47  

でも、変数名に「行」って付けてるお陰でこうやってバグに気づけたので、そこはいいよね。なんの考えなしにi,j使われてたらすぐには気が付かなかったんじゃないかな。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[Java] フルHD推奨。

このエントリーをはてなブックマークに追加

画面の左側がわりと無駄な気がします。

public int hoge(){
    int result = 0;
...

鑑賞する »

[Java] スベテカンスウ

このエントリーをはてなブックマークに追加

何でもやってくれる関数って、便利ですよね...

class Processor
{
	public bool process...

鑑賞する »

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »