>>866 そこは、=If...
おっと、上級者じゃないから、やめとこ
すまん
>>859 日付は
=TEXT(Vlookup(),"0!/00!/00")
な感じでやれば日付っぽく表示されるんじゃね?
日付も値も一緒くたにオートフィルでやるってのなら無理な話だと思うが…
値に関しては
=IFerror(vlookup(),"")
で防げるよ
0になるのが不便の意味がわからんが、前提として0が出ちゃダメってこと?
あとでAverageで使うとか?
上級者すぎwww
真の上級者はVlookUPの参照先を目視してコピペ
871 :
831:2014/06/25(水) 22:00:03.85
>>847 遅くなりましたが、ありがとうございます。
まだ深く検証しておりませんが、目的のものが作れそうです。
いや、まず日付は書式設定で良いじゃないか
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
NOW関数を、リアルタイムで自動更新させたいです。
で、ぐぐったら、次の回答がありました
-------------------------------
NOW関数はそのままで、ファイル自体をいじる方法があります。
1:ツールバー「データ」→「外部データの取り込み」で、そのファイル自体を取り込む
取り込み範囲はNOW関数が入っているセルで
2:「外部データ範囲のプロパティ」で「定期的に更新する」にチェック
更新間隔は1分で
---------------------------------
これの1番の意味がさっぱりわかりません
外部データの取り込みで、ファイル自体を取り込むというのはどういうことでしょうか。
その他のデータソース→ExcelFiles*→自分のファイルを指定
とやっても、、見つかりませんエラーが出ます。
874 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 06:00:14.02
おまえらVBAとかどうやって身につけた?独学?
独学なら本とか買った方が良いの?
>>874 構文規則は基本BASICだし、それ以外はヘルプに載ってるし
本が必要になることはないような
877 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 08:47:18.26
>>874 独学。
グラフを作りたければ「vba グラフ」辺りでぐぐればいくらでも例が出てくるし、
それの積み重ねだよ。
あと違う言語を触ると色々捗ると思う
vb.netかC#.net辺りが楽でおすすめ。
878 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 08:49:24.04
ヘルプでわかるのがすごいな
結局はプログラムの基礎が必要ってことか
879 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 08:51:12.30
>>877 ほー
とりあえずググってわからなくてもいいから触っていく感じなのね。ありがと
マクロの自動記録もいいぜ、無駄なコードも入るけどあれのおかげで楽が出来た
881 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 09:05:37.96
>>878 俺もヘルプは殆ど見なかったな。
最近はマシになったようだけど、昔のはちょっと酷かった。
>>880 忘れてた、それだ。vbaはそれがあるからなんとかなるよな。
ただたまーにバグっててそのまま使えない場合がある。
882 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 09:12:55.80
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【4 VBAでの回答の可否】 否
指定した範囲内の最大数値を表示する方法はありますか?
例えばA1〜A10にランダムで数値が入っているとします。その中で1〜30までの範囲で最も大きい数値を参照したい。
例としては「2,10,43,14,6,121,28、21、99、1」この中なら「28」を返す。そんな感じです
関数でできますか?
883 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 09:39:39.59
>>882 ちなみに数字以外にも文字がある場合もあるので、それも考慮してもらえると助かります
>>882-883 関数で出来ますよ
=MAX(IF(A1:A10<=30,A1:A10,0))
=SMALL(A1:A10,COUNTIF(A1:A10,"<=30"))
前者は30以下ならそのままの値、30超なら0を返した上で、その中での最大値を返す
配列数式なのでCtrl+Shift+Enterで確定
後者は、30以下の数値の個数を数えて、小さい方からその個数番目の数値を返す
30以下が7つあるなら、小さい方から7番目は、30以下の中での最大値
>>882,883
配列入力
{=MAX(IF(A1:A10>=1,IF(A1:A10<=30,A1:A10,"")))}
E1に30と入力して
=LARGE(A1:A10,RANK(E1,(E1,A1:A10)))
886 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 10:04:33.59
>>884 おおー、配列数式使わないでも出来たんですね。素晴らしい
ありがとうございました
>>878 ヘルプって上から目線で書いてあるからなんかわかりにくいよな
俺はひたすらググって自分の用途に似てる事例を探す
コピる、うまいこと応用する
を繰り返すと、この方法でやればできるんじゃね?とひらめくようになったりならなかったり
上から目線ってw
プログラムのリファレンスって基本的にああいうものだよ
仕様だけ不足無く書いてあれば十分
懇切丁寧な感じで書かれてたって、ウザいだけ
コードのコピペ改変しか出来ない人からしたら、
いろんな使用例の具体的なコードが欲しいのかも知れないけど、
普通に1からコード書ける人には、仕様だけ簡潔に書いてあった方が
分かり易くて有意義だ
MSDNライブラリなんかは日本語のページだとわかりづらいから英語のページの方がいい
英語わからなくても、ね
マイコンBASICマガジンで文法を3割ぐらい覚えて、最初のうちはわからない部分はコピペと試行錯誤
あとは使いながらだんだん覚えてった
使いどころ以前に、設計からして糞すぎるw
名前欄に書かれていることが見れない
メール欄に書かれていることが見れない
改行が正しく反映されない
文が長くても短くてもポップアップが自動で消えるまでの時間は同じでまともに読めない
文が特に長い場合は後半が省略されるが、省略部分を読む手段が無い
スクロールするとタイトルバーやリボンの部分が画面から消えて、「Excel風」ですらなくなる
数十秒使ってみただけでこれだけ不都合があるw
というか、Excel風ではなくExcelそのものを使って2ch読めばいいじゃん
以前は書き込みまで出来るExcelブックの2chブラウザ「=2ch」ってのがあったけど
これは仕様変更で今は書き込みできないけど、読むだけなら多分出来るし
読むだけなら1から作ってもそう大変では無いよ
XmlHttpとかでSubject.txtやdatを読んで、文字列操作して表示すれば良いだけだから
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
コピーや切り取りすると条件付き書式が繁殖して困ってます。
なのでマクロで一度削除して新しく設定しなおそうと思ってます。
例えばSheet1のA列全体の中で "○"に等しければRGB(255,255,0)
というふうにするのはどうすればいいですか?
事故解決しました
Sub 条件付き書式()
Dim fc As FormatCondition
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
ws.Cells.FormatConditions.Delete
Set fc = ws.Range("A:A").FormatConditions.Add(xlCellValue, xlEqual, "=""○""")
fc.Font.Color = RGB(255, 255, 0)
End Sub
"=""○"""の意味がわからに
>>894 >"=""○"""の意味がわからに
" (ダブルクォーテーション)で文字や数字、記号などを挟むと
それらは文字列として認識されるんだけど、
ダブルクォーテーション自体も記号のひとつであって、
それをどうやって文字列として認識させるかというと、
ダブルクォーテーションで囲まれた中では「"を2つ続けて表記する」というルールになっている
だから
"=""○""" は、つまり
="○" をダブルクォーテーションで挟んだものという意味になる。
896 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 19:18:58.30
>>891 個人的には非常に評価する
このスレを読むには全く適さないだろうけど、いい発想だ
使わないけどね
897 :
名無しさん@そうだ選挙にいこう:2014/06/26(木) 21:25:26.20
>>891 作った目的が笑える
俺は職場でも堂々と開くけどな
ニュー速みたいなスレをちょくちょくチェックするのにはいいかもしれん
どうせプロキシで弾かれるから見れない
899 :
名無しさん@そうだ選挙にいこう:2014/06/27(金) 12:25:52.83
【1 OSの種類 .】 Windows7,8.1
【2 Excelのバージョン 】 Excel2010及び2013
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
webの表の数値を会社の表エクセルに取り込むのに、
webページに表示された表をコピーしてexcelのシートに単なる「貼り付け」
そして数値部分(単一セル)のみをコピー→会社で作成した表の指定部分の結合したセルに貼り付け(貼り付けオプションアイコンで一番左しかできないのでそれで貼り付け)
とやってみたんですが、
これをマクロで記録して貼り付けまでは一気にできたのですが、
その貼り付けた値ではその会社の表に入れられた計算式(足して平均出すだけの式なんですが)で参照しないようで0のままです
貼り付けた数値を上から手打ちで打ち込むと計算式に反映されます。
貼り付けがうまくいってないと思うんですが、良いやり方はないでしょうか?
VBAでも何でも構いません。よろしくお願いします
>>899 単に数値ではなく文字列扱いになってるから、計算に反映されないだけじゃないの?
VBA使える奴が、こんな初歩的なことを解って無いとも思えないが
=ISNUMBER(セル)
でFALSEが返るなら、それは数字文字列ではあっても数値じゃない
もし、その辺のことを把握している上で、それでも原因も対処法も解らないってなら
その目的のWebページのURLを書くか、それを貼り付けたExcelブックをうpしよう
yahoo知恵袋みたいな質問サイトでExcelやVBAの質問に適してるサイトはどこ?
オススメあったらおしえてくり。やっぱりokwaveかな?
>>901 mougじゃね?
適してるどころか、それ専用に特化してるから
モーグは自宅鯖で運営してんのか?サイト落ちすぎなんだけど
ゆうべも落ちてて今朝までアクセスできなかったし
Excelで検索かけると上位に出てくるから、ついクリックしてエラーでガッカリというのをよく体験する
904 :
名無しさん@そうだ選挙にいこう:2014/06/27(金) 19:06:44.41
>>899 その値の場所をA1として
Sub Macro1()
Range("a1").NumberFormatLocal = "0_ "
Range("a1").Value = Range("a1").Value * 1
End Sub
って感じで数字を数値にして貼り付ければok
Range("a1").Value = Range("a1").Value * 1
これだけでも数値として認識されるようだけど、書式設定も変えておいたほうが色々安全だった輪
>>899 ・単一セルをコピーしたあとの貼り付けを値のみ貼り付けにする
・表そのものを貼り付けた後に書式設定を変える
・最初から表そのものを通常の貼り付けじゃなくてテキストで貼り付ける
この辺で改善できるんじゃ?
>>903 既に答えがあるものならGoogleでcacheで開けばいいべ…
もーぐって回答のレスポン早い?
908 :
名無しさん@そうだ選挙にいこう:2014/06/27(金) 23:39:18.03
遅い
ヤフー知恵遅れの方がマシ
ただ、的はずれな答えが返ってきてうざいならモーグが良い
けど個人T系にはココで十分
ここが一番ランク下ってことか
さすがにアホー知恵遅れよりはマシだろうw
>>826 印刷の設定で背景色を印刷するにチェックしてないだけでは?
りろってなかった…
でも答え出てないっぽいからいいか。
>>876 ヘルプに載っていないAPIも多数存在するよ。
これは解説本を買うしかない。
まぁ、書籍で学ぶのは、「独学」の範疇に入ると思うけど。
ようは「師匠」から教わらないことが「独学」でしょ?
Officeを2007から2010にしたら いきなり印刷プレビューが激遅に・・・
5秒くらいかかるのはザラで 余白調整も毎回同じぐらいかかる
プリンタドライバを最新にしても全く変わらず。
何か他に対策無いですか? ちなみに2007では問題なかったです。
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ある時刻が来たら、ある行を1回コピーする
というマクロを作ります。
A1セルにNow()
A2セルに、A1が11:00〜11:10になったら"1"
A6セルに、1回こっきりというフラグを建ておく
Private Sub Worksheet_Calculate()
If Cells(2, 1) = 1 and cells(1, 6)<>9 Then
range(ある行).copy range(別の行)
cells(1,6) = 9
End If
End Sub
エクセルが暴走してしまいました。
@VBAを止める方法は無いですか?
再度ファイルを起動して、デバッグ画面が出て、終了しても消去しても暴走します。
A暴走するのはなぜでしょう? どうすればいいでしょうか。
916 :
915:
補足
おそらく、cells(1,6) = 9を記入した時点でnow()データが更新され
自動プログラムが発動されてしまっているのではないかと
「ある時間が来たら1回だけコピー」というのをさせるためにはどうしたらいいでしょうか
now()の発動条件を、11:00::00のときだけ、とすると、空振りしてしまう可能性があります