Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-10あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 63
http://pc11.2ch.net/test/read.cgi/bsoft/1198283638/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
2.
>>1★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼環境・書式
・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える)
・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
・ 行の高さを0.25きざみ以下の単位で指定する
・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
・ 祝日を判断する (作業セルに祝日を列挙、VBA)
・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合)
・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など
・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
・ 罫線幅の自由指定
・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA)
・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整)
▼操作
・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA)
・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
・ 1セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼数式・関数
・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数)
・ 関数式でセルの選択状態を取得する (VBA)
・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
・ 入力したセルに結果を返す (VBA)
・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
・ 値の書き換え、値の保持 (VBA)
・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA)
・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数)
▼VBA
・ ExecuteExcel4Macroの参照で空セルと0値を区別する
・ セルの値や変数値で直接変数名を指定する (配列、コレクション)
・ VBのコントロール配列と同じような操作をしたい
(イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents)
▼ユーザーフォーム
・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)
▼グラフ
・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
(オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
┌┐
〜〜
||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。
間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。
Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。
また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。
ここに書かれてないからといって必ず出来るはずだなんて思わないように。
>▼環境・書式
> ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する
補足
2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、
指定も同じくcm単位でできる。
ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように
近い値に勝手に丸められる。
テンプレ終わり
乙
________________________________
||
|| ━ 質問のしかた ━
||
|| ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
|| ★2 要望は具体例や図を使って明確かつ具体的にしる。
|| ★3 質問前に
>>2-20あたりの注意書きやQ&Aを必ず読むこと。
|| ★4 質問テンプレ(雛形)は必須ではないが、
|| OSやExcelのバージョン、VBAの可否などは必須情報。
||
|| ∧ ∧ 。
|| ( ,,゚Д゚)/ ジュウヨウ!! E[]ヨ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/  ̄ ̄ ̄ ./| ________________
| ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ は〜〜〜〜い /
∧ ∧ ∧,,∧ ∧ ∧
( ,, ∧▲ ミ ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
@(_(,,・∀・)@ ( *)〜ミ_ ( ,,)
@(___ノ 〜(___ノ 〜(___ノ
ここレベル低杉、氏ねよ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 ユーザーフォーム 透明
ユーザーフォームの透明化は出来ますか?
12 :
前スレ953:2008/01/20(日) 20:30:53
15 :
前スレ875:2008/01/20(日) 20:44:17
下記のような質問をさせて頂き、前スレ
>>882様よりご返答頂きました。
しかし、私の質問の仕方が下手で、せっかくお答えいただいたにも関わらず上手く生かせませんでした。
範囲が東京・大阪の他に埼玉、千葉などの都道府県があるのです。その場合、何か良い方法はあるでしょうか?
何度もすみません、例にならって試してみたのですが答えが見つかりませんので宜しくお願いいたします。
貴重なスペースをどうもすみません。お礼が遅れてしまった事も合わせてお詫び致します。
スレ汚しと判断された場合はスルーしてください。
>東京 a地区 03-xxxx-xxxx
> b地区 03-1111-1111
>大阪 a地区 06-1111-1113
> b地区 06-1111-1111
> c地区 06-1111-1112
>上記の様な場合、
>ドコ?
>【東京】
>何地区?
>【b地区】
>と、選択後
>答え
>【03-1111-1111】
>と表示できるような計算式は2003で可能なのでしょうか?
>無知で申し訳ないです。ご教授願います。
>882 名前: 名無しさん@そうだ選挙にいこう [sage] 投稿日: 2008/01/18(金) 12:45:09
>データの範囲が分からないので勝手に作ってためしてみた。
>・もとのデータがA1〜C5にあるとする
>・ドコ?に対する答えである「東京」はA8に表示
>・何地区?に対する答えである「b地区」はA10に表示
>上記の条件だと
>=VLOOKUP(A10,IF(A8="東京",B1:C2,B3:C5),2,0)
>でどうでしょう?
>>15 東京 a地区 03-xxxx-xxxx
東京 b地区 03-1111-1111
大阪 a地区 06-1111-1113
大阪 b地区 06-1111-1111
大阪 c地区 06-1111-1112
にはできないの?
その形式の方がオートフィルタもできるしDGETもできるし楽だよ。
前スレでも書いたけど
"東京a地区" "03-xxxx-xxxx"
"東京b地区" "03-1111-1111"
ていう表をつくってVLOOKUP()つかえばいんじゃないですか?
>>15 882の内容でいくとIF条件でVLOOKUPで使用する範囲を分岐すればいいだけ。ネストすればいいじゃん。
882の内容が分かってないようですね。
>>18 IFのネストなんざ7レベルまでしかできないでしょ。
数が多けりゃたぶん無理。
20 :
11:2008/01/20(日) 21:16:54
>>14 FindWindowあたりでウィンドウハンドルを取得して、SetLayeredWindowAttributesにレイヤーを
設定すれば何とか出来そうです。
どうもありがとうです。
21 :
15:2008/01/20(日) 21:27:14
迅速なレスに感謝します!
>>17様
アドバイスありがとうございます!都道府県と地区を組み合わせてしまうと
膨大な数の組み合わせから選択しなければならないので、条件を2つに分
けて選択し電話番号を導き出したいと考えています
>>16様
>>18様
すみません、なにぶん初心者ゆえ言葉自体を把握できていません。
ググってみたのですが少時間ではチンプンカンプンでした。
それぞれDGET、ネスト時間をかけてもう一度調べてみます!
ヒント、頂きました!
>>21 あのね、膨大な数っていったって電話番号の数だけつくらないといけないのはどの方法でも一緒なんだよ?
都道府県名と地区名が入力済みなら =都市名&地区名 でキーはつくれるんだから。
なんか先が思いやられるなー
23 :
名無しさん@そうだ選挙にいこう:2008/01/20(日) 22:11:27
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007(2003で編集する場合あり)
【3 VBAが使えるか .】 がんばる
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 「Excel 文字列を含むセル 数える」「Excel 複数回答 数える」
アンケートの集計をやっているのですが
複数回答可の場合がうまくいきません。
ここ↓にたどり着いたものの、範囲を書き換えても式にならなくて…
ttp://support.microsoft.com/kb/213889/ja 現在は、こんな感じです。
.|A
_|____
1|3
2|2,6,7
3|1,2,4,5
4|3,5
5|2,7
6|2
一つのセルに、,(半角カンマ)で区切って並べています。
それぞれの数字の数を数えたいです。
一応、書式は全て「文字列」に変換済です。
ちなみに、集計するシートとデータのシート(Data.xls)が異なるのですが
(Data.xls]Sheet1!という指定でできますよね?
24 :
前スレの978だが:2008/01/20(日) 22:23:24
>997 968 [sage] Date:2008/01/20(日) 18:11:18 ID: Be:
> 私の質問はスルーですか?
> 他所で質問するとマルチになるので、回答まってます。
>998 名無しさん@そうだ選挙にいこう [sage] Date:2008/01/20(日) 18:19:55 >ID: Be:
> 半日も待たずに催促する奴は永久スルーの方向で
>>前スレの998
折れには、オマイのレスがスルーされるべきだと見えたwww
では、回答をできるのならどうぞ。
>>12 いいところにたどり着いてますね。簡単な名前の付け方もそこには書いてあるようなので、それが一番楽だと思っている。
>>23 各行のカンマの数を数えて、+1で出るんでネノ?
>>23 データの格納方法を失敗しましたね。
今度アンケートとるときは次のように入力しましょう。
1 3
2 2
2 6
2 7
3 1
3 2
3 4
3 5
4 3
4 5
5 2
4 7
6 2
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ?
仕事で判らない所などをtextにまとめて提出したところ、
上司からEXCELで再度提出して欲しいと言われました。
textの内容をExcelにコピーし再度提出したところ、
「回答等を追記できるようにしてほしい。」
と言われまた提出を求められました。
何かEXCELに便利な業があるのでしょうか?
当方簡単な関数は使えますが、VBAはできません。
どんな方法でも良いので教えていただけないでしょうか?
宜しくお願いします。
>>23 データをカンマで区切って集計すればよろし
>>27 Windowsなら「メモ帳」で十分ですが?
VBAも関数も必要ナッシング!!
>>27 てか、単純にコピーした文字の横か下に
回答:_________
って入れればいいだけでは?
>>29 私もメモ帳で十分だと思うのですがねー。
>>30 う〜ん!私もそうなのかなーと考えましたが、
それならメモ帳からExcelに変える意味がないと思うんですよ。
>>27 その人、番号付けて回答欄用意してもらいたいんじゃね?
質問と回答が漏れないように。
ID 質問 回答
1
2
みたいな表作って、質問のとこにコピーすればいいんじゃね?
で、罫線でも引いてやれば満足するんじゃね?めんどくさい上司だねw
質問長くて1つのセルに入りきらない時は、「セルの書式設定」ってので
「折り返してひとつのセルに表示」(うろおぼえ)で入るよ。
>>31 私も就職してからわかったのですが会社という組織には
まったく意味不明の要求をする上司とうものが必ずいる
ものなのです。
理解しようとする努力は不毛だよ。
>27
質疑応答の記録を残す事は重要ですよ。
普通、A列に通し番号、B列に質疑、C列に相手が
回答を打ち込めるよう空白の表を作ります。
関数とか特別なテクとかの問題じゃありません。
>>24 スルーされるべきと思うならスルー城!
>>32-33 コメントありがとうございます。
短い付き合いですが、その上司は大変人柄も良く部下思いの
上司であるため、無意味な事を要求したり、嫌がらせをするとは思えません。
もしかしたら単純に
>>32さんのやり方で良いのかもしれません。
36 :
名無しさん@そうだ選挙にいこう:2008/01/20(日) 23:56:16
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】
勤務表を作っているのですが、「/」や「−」の記号で入力するとおかしくなります。
この記号には何かショートカット的な意味合いがあるのでしょうか?
37 :
名無しさん@そうだ選挙にいこう:2008/01/20(日) 23:57:11
>>33 意味不明の要求といえば fj などの NetNews の機能に由来する要求で
前スレ
>>997 みたいな犠牲者を生み続けている
>>3 あたりもそうだな。
38 :
名無しさん@そうだ選挙にいこう:2008/01/20(日) 23:58:24
他で同じことを聞くな、と言った責任はとるべきだろう。
>>36 「/」には特別な意味があります。
確かその意味を無効にする設定はあったような気がしますが。
「'/」とか「'-」と入力すれば受け付けられるはずです。
>>35 VBAが使えるなら、開いたときシカケを作るのも手だが・・・(w
使えないなら、条件付セルで、文字を入れたらセルの色が変わるとか
子供だましのことでも上司は喜ぶかもね。
>>40 そんなことでよろこんでるようではつまんない上司だね。
でもそんな人は実際多い。
>>36 わり算とか引き算とかするときに使う記号ですね。 したことない? 失礼しました。
43 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:15:27
以前、直リンクはサイト主が嫌いだから不当だとする俗説があったが
ここはスレ主が嫌いだから他で聞くなとでも言うのか? スレ主が全部答えているわけでもなかろうに。
44 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:18:27
道義責任をスルーする気ならこっちも守る筋合いはねえな。
45 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:21:07
どうなんだよ!
46 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:21:51
他で聞いていいのかどうか、はっきりしろよ。
47 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:23:36
答えらんねえダボが無理してんじゃねえよ、ぺっ
他のところで聞くことが全てマルチになるっていうのは大きな勘違いだと思う。
他のところに行きたいならばこのスレで
「他のサイトに行くので回答を締め切らせてもらいます。」
と書けば済むこと。他のサイトならば「解決マーク」が大抵あるから
コメントを書いてそこを解決にすることでマルチではなくなる。
つーか、ここの回答者に高度な回答を求めるのは無理w
レスがつかなければとっとと他のサイトに逝った方がいい。
49 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:28:06
>>48 じゃ、マルチを定義しろよ。
世界中の他のところで締め切ったかどうかどうやって違反を検挙するんだ?
「大抵」だあ? 守らせる仕組みのない法は絵に描いた餅だぜ。
私も前から疑問に思っているのですがマルチの何がいけないの?
時々キ○ガイが絨毯爆撃みたいなマルチをやるのは問題だと思うけど
まじめな質問を複数の関連スレッドに投げるのは許容範囲でしょう?
51 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:31:50
>>49 世の中は絵に描いた餅ばかり。
それに法なんかじゃない。
それにお前ひょっとしてセンター試験うまくいかなくてここでうさ晴らしか?w
なんなら、不幸せになる「魔法の言葉」をかこうか?
52 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:31:53
おおかた、一生懸命回答して自画自賛してるところへ同じ質問が来るのが不快だからってなことだろ?
いいんだよ、そんなのは他の奴が答えれば。2ちゃんねるには同じ回答を繰り返す義務があるとかどっかに書いてあったか?
53 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:33:30
>>51 早く定義しろ!
他のところで聞くことが全てマルチになるっていうのが大きな勘違いなら、
勘違いでない境界線を引けや、守らせることのできる実効性のあるラインをよ。
>>53 あなたの言うとおりだと思うよ。
マルチ禁止なんてバカバカしいルール。気にしなくていいよ。
だから機嫌直してね。
55 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:37:09
法とは公的機関の法令のことではない。
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
と書いてあるだろ、守れる規則を守る気のある奴まで不当に縛るLRに異議を唱えているんだよ。
>>50 マジレスすると質問サイトなんてどのサイトも大部分で同じ奴らが回答してる。
回答者が最初のサイトで一生懸命回答しているのにそれを無視して同じ質問を
他のサイトで見かけたりすると気分が悪くなる。
それって回答者に失礼な事だよ。
でも、2ちゃんにまで顔を出している他サイトの回答者なんて少ないだろうから
マルチしても、たいした問題にはならないとは思うけどね。
57 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:39:12
>>54 ↑
今、こいつが発議した「マルチ禁止」を無効とする動議に異議のある者はいるか?
58 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:39:52
59 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:41:46
>>56 >質問サイトなんてどのサイトも大部分で同じ奴らが回答してる。
ソース出せ。
60 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:43:35
落ちる、すべる、遅刻する、失敗する、名前忘れる、マークシートの勘が外れる、ヤマが外れる、行くとこなくなる
落ちる、すべる、遅刻する、失敗する、名前忘れる、マークシートの勘が外れる、ヤマが外れる、行くとこなくなる
落ちる、すべる、遅刻する、失敗する、名前忘れる、マークシートの勘が外れる、ヤマが外れる、行くとこなくなる
おれはこことMOUGと教えてgooで解凍してる
62 :
61:2008/01/21(月) 00:45:21
あ、マルチ禁止には同意しない立場なんで どこでも聞けばいいじゃんねー
63 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:47:35
テンプレ修正でいいのか? >>ALL
2 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2008/01/20(日) 18:06:42
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。
ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ないことも出来ます。
Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、
どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。
但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。
ここみたいに丸投げはダメですよ。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
・9 削除
・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、
チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、
ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。
・B 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
64 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:48:58
3 名前:名無しさん@そうだ選挙にいこう[sage] 投稿日:2008/01/20(日) 18:06:49
★ルールを無視すると…
>>1-2あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.削除
2.
>>1★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
65 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:49:40
こうしてここに、まともな回答者がいなくなるのであった…
糸冬了
66 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:51:30
他で同じことを聞いたくらいでご機嫌が傾く変人はいらねーよ。
>>50=
>>53です。
>>63 賛成します。
キ○ガイマルチは困りますが,テンプレートに禁止とまで書くのは反対。
テンプレ見ろテンプレ見ろってうるさいやつが湧いてくる。
68 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:52:46
ここには有名人のブランド力がないのを身を以て思い知れや。
69 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 00:52:56
こうしてここに、まともな回答者がいなくなるのであった…
糸冬了
マルチがいやなやつは回答しなければいい。それだけ。
そんな難しい性格のやつは出て行ってくれたほうがうれしい。
71 :
53:2008/01/21(月) 00:54:04
俺は
>>50 ではない。
こういう、低劣な工作が必要になるような主張か? マルチ禁止は。
お、盛り上がってるねぇ〜
難問は漏れが適当に答えてやるよwww
73 :
36:2008/01/21(月) 00:56:13
>>39 ありがとうございます。違う記号を使うようにします
>>42 ありがとうございます。セルに直接「/」とかを入力すると何か飛ばされてしまうので・・・
計算には使ったことありますw
漏れが難しいことを質問するときは、EXCELファンクラブに行くから
ここは何でもありでいいよ。
76 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 01:03:06
流れ読まず質問します
ネットワーク上にあるexcelファイルを開いて修正かけて保存しようとしたのですが
上書きどころか新規でも保存できません。
デスクトップにも外部媒体にもどこにも保存不可です。
どうしたら保存できるでしょう?
ちなみに、新規ファイルを作成し、修正したシートをコピーして新規保存は出来ました。
PC:DELL一週間前に買ったので古くはない。(自分のPCではない)
OS:WinxpHomeSp2
バージョン:Excel2000
どうかお願いします。
これが終わらないと出張へいけません。
A列に番号(折り返し全体を表示させるにチェック)
B列に質問 C列に回答と下記の様な表を作りましたが、
セルごとに文字数が違うため、行ごとの高さがばらばらで
見栄えが大変悪いのです。
もっときれいに見せる方法ってあるのでしょうか?
それとも行の高さを統一してセルの1部しか見えない状態で
提出した方が良いのでしょうか?
番号 質問 回答
1
2
>>76 読みとり専用で開いたんじゃないか。名前を変えれば保存できたはず。
79 :
78:2008/01/21(月) 01:07:36
そうでもないか。失礼
80 :
76:2008/01/21(月) 01:30:11
ネットワーク上にある共有フォルダ内の自分のPCのバックアップファイルを開きました。
作成者は自分ですので、読み込み専用にした記憶はありませんし、確認したらそうではなか
ったです。
古い話ですが2バイトのユーザー名・・・ってのは、このバージョンでも関係あるのでしょ
うか?
先ほどPcのユーザーアカウントを見たら日本語でしたので・・・。
81 :
76:2008/01/21(月) 01:33:49
最初がわかりにくいですね。
ネットワーク上にある共有フォルダ内に、社員各々が自分のPCのバックアップを取っているので、
その中に保存してある、私が作成したexcelファイルです。
急ぎならローカルにコピーして修正してから共有フォルダにコピーしなおし
>>76 ネットワークファイルは開ける、新規保存は可能、ってトコから、
権限の問題じゃないと仮定しての話だが、
保存しようとしたときに、ふざけたエラーメッセージが出ない?
VBAやオートシェイプ図形付きのドキュメントを新しいバージョンで保存してると、
旧バージョンで開いたり、保存したりする際にエラーが出ることがある。原因は不明。
エクスプローラでファイル操作すれば、ファイルがコピーできたりしないかな?
84 :
76:2008/01/21(月) 01:55:08
4時間かけて修正したんです。
考えながらなので、打ち込むだけなら1時間かからないと思いますが。
ちなみにワードからの貼り込みや、図形がふんだんに入ってます。
今、新規のファイルを作成し、そこへ各シートのコピーをして保存しようとしましたが
図形が一括でコピーできない。orz
>>84 え? シートを別のブックにコピーしても
図形がワークシートに引っ付いて行かないってこと?
こんな時間に会社から2ちゃんですか・・・
ご苦労なこったw
87 :
76:2008/01/21(月) 02:05:44
>>85 図形だけ抜けてます。
試しに図形だけ選択してコピーしようとしてもコピーできません。
なんでだ?もうワケワカランです。
>>86 ここが一番レスポンスよさそうなので。
こんな時間に知り合いに電話かけて聞くのも非常識だと思うし。
88 :
76:2008/01/21(月) 02:13:56
今やったら出来ました。
同じ作業をできたりできなかったり・・・
なんかおかしいです。
とりあえず作業続けて新規ブックで保存します。
89 :
77:2008/01/21(月) 07:45:31
77の質問にどなたか答えていただけないでしょうか
宜しくお願いします。
>>89 いちばん文字数の多い行の高さに合わせれば見やすいんじゃないの。
こんなのエクセルの質問でもなんでもないけどな。
>>89 このケースはここでわれわれに質問しても解決しないよ。
「私の上司の好みを教えてください。」っていう質問でしょ?
毎回同じ質問でテンプレ作りたくなるのも分るが
ここはひとつ初心に戻ってみてはどうかな。
1 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2000/08/09(水) 12:47
スレ乱立するのもあれだからExelの質問・回答はここでまとめてやりましょう。
・質問する人は可能な限り具体的に書くこと。回答がなくてもキれないこと
・分かる人はできるだけ回答して下さいませ
93 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 11:31:54
formulaプロパティを使うときに、変数の中身を使うにはどうすればよろしいでしょうか?
具体的には元のブック、a1セルに別ブックの名前を入力し、変数fiに格納した後に、
その別ブックのaaaシート、a1セルの式を元ブックのc1に入力したいと思っています
Dim fi As String
fi = Range("a1").Value
Range("c1").Formula = "=[fi]aaa!a1"
このまま実行すると、c1セルには=[fi]aaa!a1としか格納されませんでした
色々調べたのですが、変数を使う方法が見当たりませんでした
また、A2、A3・・とこのセルの下にも入力する箇所を用意しておき、
それぞれ同じようにC2、C3と表示できるように、
DOLOOPなどを使ってみようと思っています。
よろしくお願いします
Range("c1").Formula = "=" & fi & "aaa!a1"
このスレでたまに質問させていただくのですが
ネットで定期購読できる
日経パソコンという雑誌は役に立ちますか?
96 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 12:24:59
97 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 13:13:46
計算結果で小数点以下を切り上げにするにはどうしたらいいのですか?
>>97 =roundup(・・・,0)
このくらいは調べられるような気もするが。
以下質問
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】
excelで作った文を複数、ワードに貼り付けるところまで自動化したいのですが、
手でコピーしたところ、単なる文ではなく表としてコピーされました。
最悪手動でもいいので、単なる文の連なりとしてコピーする方法を教えてください。
また、マクロでexcelの文をwordに「文」としてコピーする方法はあるのでしょうか?
例)
A1 山田君はお休み
A2 田中君が代休
A3 河野さんが出席
をワードに表でなく、3行にしてコピーしたいのです。
>>98 word側で「形式を選択して貼り付け」で「テキスト」
2003ならスマートタグで「テキストのみ保持」
このくらいは調べられるような気もするが。
101 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 15:44:16
>>98 助かりました!! ありがとうございました。
102 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 15:45:59
【1 OSの種類 .】 Windows98se
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可・
【5 検索キーワード 】 Formula vba 2000 エクセル など
>>93です
検証せずにお礼を言ってしまったのですが、エラーが出てしまいました
実行時エラー'1004':
アプリケーション定義またはオブジェクト定義のエラーです。
と表示されてしまいます
以下、コードの原文そのままです
Dim fi As String
Dim gyo As Long
Dim aaa As String
fi = Range("a1").Formula
gyo = 1
aaa = "=[" & fi & "]請求!A1"
Range("c1").Formula = aaa
A1セルにtest1.xlsと入力されている場合、エラーが表示され
test.xlsだとエラーになりません
ファイル自体が両方存在していても、いなくてもtest1だとエラーになります
原因のわかる方、お願いします
そのコード、そのままコピペで
test1 も test も両方動くけど。
>>98 Wordと連携させるなら外部オブジェクトへの参照設定をしておく方がいいですよ
105 :
93:2008/01/21(月) 16:59:33
何度もすいません・・先ほどのは間違いでした
色々削って検証した結果、testとtest1は大丈夫でしたが、
今度は1.xlsはエラーなし、1-.xlsがエラーになりました
1+.xlsもエラーがでました
算術演算子を使っているのが悪いのでしょうか・・?
106 :
93:2008/01/21(月) 17:00:15
何度もすいません・・先ほどのは間違いでした
色々削って検証した結果、testとtest1は大丈夫でしたが、
今度は1.xlsはエラーなし、1-.xlsがエラーになりました
1+.xlsもエラーがでました
算術演算子を使っているのが悪いのでしょうか・・?
どんなエラーか、ってのも書いた方がいいよ。
経験者には、エラーのメッセージから、数通りの原因を推測できる人だっているから、
ケースによっては、ヘタに説明しようとするより早いかもしれない。
108 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 17:11:31
マクロをいじってから、エクセルのファイルを開くたびに
『PERSONAL.xls』ってファイルが勝手に開くようになってしまったのですが
どうやったらコレが開かないように出来ますか・・・
>>108 「PERSONAL.xls」でググればすぐ出てくるが…
110 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 17:28:07
COUNTIF関数で、セルの値が*の場合という検索条件(数式)を
COUNTIF(A1:A10,="*") と書いたらエラーになりました。
どうすれば良いのでしょうか
>>110 文法としては、
=COUNTIF(A1:A10, "*")
でも、これだとワイルドカード指定になるはずだから、単純に*が入ったセルを数えるなら
=COUNTIF(A1:A10, "~*")
>110
=COUNTIF(A1:A10,"~*")
かぶった orz
115 :
110:2008/01/21(月) 18:23:31
俺の部署に入社2年目の若僧が着たんだけど、
そいつエクセルとかかなり長けてて、いきなりみんなからエクセルを含めたパソコン関係の
スペシャリストと崇められててうざいんだよね。
で、そんなやつをアッと驚かせるテクがあったら是非教えて欲しいんだけど。
XPとEXCEL2003で。
119 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 22:55:46
excel2003でグラフを作っています。
あるサイトからダウンロードした散布図のテンプレの背景が「塗りつぶし効果」で画像になっているのですが、この画像を抽出して、加工した後に再び「塗りつぶし効果」の画像に指定したいのですが、どうすればいいのでしょうか?
教えてください
ステータスバーにフォントで言う上付き文字を表示させたいのでsが、その方法を教えてください。
Application.StatusBar = menseki & "m2"
2
この m2 を m にしたい。ということです。
uをつかう
>>121 ありがとうございます。
uなどの登録されてある以外の文字、例えば5乗や10乗などを上付き文字での表示は可能でしょうか?
>>122 おそらくないと思う。 ^5 ^10 で
124 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 23:09:54
一つのセルに行番号を入力しておいて
その行番号を参照することはできますか?
例えば、B10に『A10』と入力しておいたら、
B10を参照してA10の値を返すというような感じです
行番号なのに『A10』?
VBAなら可能だが、関数はワカラン。
つーか、てんぷr(ry
127 :
122:2008/01/21(月) 23:19:26
129 :
名無しさん@そうだ選挙にいこう:2008/01/21(月) 23:34:36
Office2003のプリインスコPCを買ったんですが、パーテーションを切るため
OSを入れ直して、Office2003を入れました。
そうですか
>>133 今にして思えばこれが、あの事件のすべての始まりだったのでございます。
135 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 00:40:57
何枚かに渡って印刷する時、表とかの項目を全てのページに出るようにするにはどうすればいいのですか?
エクセルとかワードによく似たフリーソフトってないでしょうか?
それで練習してから、本物を買いたいのですが。
OpenOffice
office2003が文字入力と一部のコマンドが使えなくなるのですが…
パソコンの電源を入れて、エクセル起動。Book1表示後に
表に出ているファイルを開く、印刷、印刷プレビューを除くコマンド(新規、コピー、切り取り、戻すなど)がつかえないじょうたいになり、文字の入力ができなくなります。
ほかのソフトは変化はないのですが、officeを入れ直した方がいいのでしょうか?
>>138 まずは落ちついて正しい日本語で質問しなおせ
何言ってんだか、何を伝えたいんだか
支離滅裂で全く分からんぞ
141 :
93・106:2008/01/22(火) 09:54:41
>>107 ありがとうございます。まとめさせて頂きますと、
Range("c1").Formula = "=[1.xls]請求!$A$1"
Range("c1").Formula = "=[" & "1" & ".xls]請求!$A$1"
この二つはエラーが起こらず
Range("c1").Formula = "=[+.xls]請求!$A$1"
Range("c1").Formula = "=[" & "+" & ".xls]請求!$A$1"
このコードでエラーがでます。
+の部分を-と入力しても、同じようにエラーになります。
エラー内容は
実行時エラー'1004':
アプリケーション定義またはオブジェクト定義のエラーです。
となります。
環境はwindows98SE、エクセル2000で、セキュリティレベルも低にしてあります
+や-の入ったファイル名を式に使うには、どうすればいいのでしょうか?
>>141 Range("c1").Formula = "='[" & "+" & ".xls]請求!$A$1"
にすればいいんじゃないかな?
143 :
93・106:2008/01/22(火) 10:54:40
>>142 ありがとうございます
が、それでも同じエラーがでました・・
144 :
93・106:2008/01/22(火) 11:00:48
できました!
Range("c1").Formula = "='[" & "+" & ".xls]請求'!$A$1"
とシート名の前にアポストロフィをつけると無事、参照できました
本当にありがとうございました
>>145 ここ ↓
Range("c1").Formula = "='[" & "+" & ".xls]請求'!$A$1"
何でエラーがでるんだろう
エクセルのバージョンが新しいと、エラーにならないんじゃね?
オレも2000しか持ってないから分からんが。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少し
【4 VBAでの回答の可否】 可
セル上にあるhtmlリンクをクリックしたとき、処理Aを実行する。 としたいのですが、
クリックしたときのイベントってどうやって拾うのでしょうか?
>>149 Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ありがとうございます
152 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 17:43:52
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 少し
【4 VBAでの回答の可否】 可
新規シートに
画像を2ページに渡って貼り付けて、
Sub PrintPage()
Dim PPage As Integer
PPage = Application.ExecuteExcel4Macro("get.document(50)")
MsgBox PPage
End Sub
と印刷総ページ数を表示するマクロを実行すると
実際の印刷総ページ数は2ページなのに
0ページと認識され表示されてしまいます。
原因の解る方がいらっしゃいましたら宜しくお願い致します。
153 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 17:55:14
XP エクセル2003
質問です
開始年月日2003年3月21日、終了年月日が2006年10月21日の残りの日数の時の式
DATE関数?使い方がわかりません。
アドバイスお願いします。
154 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 18:07:44
>>153 開始年月日2003年3月21日、終了年月日が2006年10月21日の「残りの日数の時の」式DATE関数?使い方がわかりません。
特に「」のとこの意味がいまいち不明なんだが?
>>153 ="2006/10/21"-"2003/3/21"
>>155 ありがとうございます。
="2006/10/21"-"2003/3/21-1"
ではなくていいのでしょうか?
1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Exce2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 「エクセル リスト作成」
エクセルの本を買って問題を解いているのですが
わからないところがあったので質問させてください。
質問1.1枚のシートに1つのリストを作成する方が良いが、
複数のリストを作成する場合は、他のリストとの(@)
リストの一行目に他のレコードと異なる書式を設定した(A)を作成する。
@の選択肢;間隔をなくし、間隔をあけ
Aの選択肢;データ、レコード、リスト、列見出し、フィールドレコード
質問2.リスト列ごとにある条件を選択し、抽出を行うことができる機能として
正しいものを選びなさい。
データ、オプション、オートフィルタ、フィルタモード設定、列選択
よろしくお願いします。
158 :
155:2008/01/22(火) 19:14:34
>>156 レス読んで分かる範囲で回答しただけ。 何がしたいか分からんのに、オレに聞かれてもな。
でも固定で式書いてるんだから、"2003/3/21-1" は変だろ。
="2006/10/21"-"2003/3/21" -1 って書きたいの?
「この問題が出たんですけど、何て回答すればいいですか?」 とか訊かれそうだな。そのうち。
>>157 1-@: 間隔をあけ 、1-A: 列見出し 2: オートフィルタ だとは思うが。
余計なお世話なのは百も承知なんだが、教本産業の犠牲になってないか?
無意味とは言わんが、時間の使い方が勿体無い気がする。
家の家計簿とか、自分の蔵書を整理するリストでも作ってみた方が勉強になる。
161 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 21:45:08
2003 XP 検索キーワード=Countif 複数条件 日付
=Countif(A2:A10,And(">=2007/1/1","2007/3/31"))
は該当があっても0(=ゼロ)となり、効いていません。
1月1日以降3月31日までの日付件数を関数で取りたい。よろしく。
162 :
161:2008/01/22(火) 21:46:59
一部漏れてます。
=Countif(A2:A10,And(">=2007/1/1","<=2007/3/31"))
でした
164 :
161:2008/01/22(火) 22:05:18
おいおいwww 訊いている人がいわれてもなぁ
まぁ、趣旨として追加すると、2007の =COUNTIFSに相当する使い方をしている人、教えて と。
>>164 オイオイ、おまえ天然か?
俺163じゃないけど163の気持ちわかるぞ。
「そんな聞き方をする答える回答はない」と…
166 :
161:2008/01/22(火) 22:15:10
>>165 ごちゃごちゃうるさいよ外野。
知ってる人のみがレス付ければ良いんだよ。カス。
167 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 22:19:40
168 :
161:2008/01/22(火) 22:21:06
169 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 22:33:55
\ /
NULLPO!! .\ .∧_∧ . /ガッ必死だな(藁
* \ ( ´∀`)<ぬるぽ/V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ + \ /l_∧ カタカタ . ∧_∧
( ´∀` ) .\ .../( ´∀) /\ (∀・ ,#)←叩き人
+ (つ ⊃ * + \ ∧∧∧ / ..( つ===〕〔===⊂ __,)
( ヽノ <予 ぬ> ┌(_. ̄|| ̄ ̄ ̄ ̄ ̄ ̄|| ̄_,)┐
*. し(_) + <感 .る> ┗┳━||') .('||━┳┛
<!!!! ぽ> .┻ .(||_) ..(_||) .┻
───────────< 祭>────────────────
< り.> ♪
_| ̄|○モウヌルポ < の> ..♪ ∧ ∧ ♪ よ〜く考えよ〜 ♪
/ ∨∨∨ \ (,,゚Д゚). ♪ ぬるぽは大事だよ〜 ♪
ぬるぬるぽ ./ ∧_∧ .\ . |つ[|lllll]). う〜う、う〜う、ううう〜 ♪
 ̄ ̄~V ̄ ̄ ̄ ̄ ̄./≡ .( ・∀・ )ヌルポ \ 〜| |
.(・∀・) / -=( つ┯つ .\ .U U
(∩∩) ./ -=≡/ / // \
./ .-=≡(__)/ ) \ .∧_∧
./ ,-= (◎) ̄)) .\( ´∀` )<NullpointerException
170 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 23:42:06
知ってる方いたら教えてください。
先日Vistaを購入したんですが、Excel2007では値貼り付け
ツールバーは設定できないのでしょうか?
171 :
名無しさん@そうだ選挙にいこう:2008/01/22(火) 23:43:44
すみません。
文章がめちゃくちゃになってました。
Excel2007では値貼り付けはツールバーで出せないんでしょうか?
>>171 「ホーム」のリボンの「貼り付け」の▼を押したら出てくるけど
それでは不満かな。
>>171 ホームタブの「貼り付け」の下の▼をクリックすると値の貼り付けってあるけどそれじゃダメ?
174 :
171:2008/01/23(水) 00:01:08
>>172さん
>>173さん
ありがとうございます。
Excel2003や前のバージョンだとツールバーに出しておけば
一回押すだけで値貼り付けできてたんですけど…
仕事で値貼り付けを多用するのでワンプッシュでやりたいのです。。
やっぱりできないですかね…?
175 :
161(本物) ◆wkj7cNdS3Y :2008/01/23(水) 00:08:40
少しおもしろい流れになっているなw
考えてたら、時間がかかったけどうまくいったよ。簡単だったwww
おやすみ
176 :
173:2008/01/23(水) 00:09:44
>>174 それなら
officeボタン − Excelのオプション − ユーザー設定 で
コマンドの選択を[ホーム]タブにして値の貼り付けを右に追加すると
クイックアクセスツールバーに追加されます。
やってみた方がわかるかも。
>>174 もしユーザー設定ができなくても、これならワンプッシュ (前スレより拝借)
619 名前: 名無しさん@そうだ選挙にいこう [sage] 投稿日: 2008/01/12(土) 17:56:52
>>615 値のみ貼り付けするマクロを作って、
マクロのダイアログ(Alt-F8)でそのマクロのオプションを選択。
ショートカットキーを指定できるので、vにする。
(shift-vとかの方が無難な気もするけど)
マクロはこんなんでいいんじゃない。
Sub 値のみ貼り付け()
Selection.PasteSpecial xlValues
End Sub
自分で作ったマクロをボタンに登録したときクイックツールバーにしか
登録できないんでしょうか?
>>176、
>>177さん
ありがとうございます!
できました!!
普通にツールバーに入れられるんですね…
2時間も悩んでしまいました。。
本当に助かりました!
ありがとうございますm(__)m
180 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 09:54:05
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】
見積書で金額の集計をする際に、( )の付いている金額のみを抜き出して合計したいのですが、
関数SUMIFを使用したところ同じシート内でしか集計できませんでした。
複数のシートから条件付で集計するにはどうすればいいのでしょうか?
181 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 10:30:03
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
表示 入力コード
あ 1〜5
い 6〜10
う 11〜15
え 16〜20
お 21〜25
下記様に、入力コードを打ち込んで、そのコードの文字を表記させる場合、
IF以外に何かすっきりした関数は無いでしょうか?
>>180 各シートのSUMIF( ) の結果を更に集計するしかないんじゃない?
>>181 セルに下みたいなテーブルを用意することができるなら、VLOOKUPが使えると思う。
あ 1
い 6
う 11
え 16
お 21
=LOOKUP(対象値, A1:A5, B1:B5)
183 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 14:54:07
フォームから作成したコンボボックスで、コンボボックス右のボタンを押して
表示されるリストからある値を選択した場合、
その選択した値はVBA上ではどうやって取得するのでしょうか?
>>183 Clickイベントを取れば良い
これで解らなければあとはVB6分野(VB6と共通)の話なので
>>2・7
185 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 15:44:58
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excelxp
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 他ブック・存在・シート・vba・・等
A1セルにブック名が入力されているとき、
そのブックに合計という名前のシートが入っているかどうかを調べるには
どのように記述すればよろしいでしょうか?
(カレントフォルダは使っているブックの場所に移動し、
探したいシートがあるブックも同じフォルダにあります)
今開いてるブックに対しての有無を確認するコードは拾ってきたのですが・・
Sub シート確認用3()
Dim a As String
a = Range("a1").Value
ChDir ActiveWorkbook.Path
Dim flg As Boolean
Dim cnt As Long
For cnt = 1 To ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets(cnt).Name = "合計" Then
flg = True
MsgBox "ok"
End If
Next
If flg = False Then
MsgBox "ng"
End If
End Sub
>>183 シート上のドロップダウン(だよね?)を右クリックして、マクロ登録
すると、自動的に「Sub ドロップ1_change」みたいなのが入力されてると思う。
あとは、そこに、こんな感じ
Sub ドロップ1_Change()
Set ctrl = ActiveSheet.Shapes("Drop Down 1").ControlFormat
MsgBox ctrl.List(ctrl.Value)
End Sub
VBのコンボボックスコントロールとは無関係
>>180 >見積書で金額の集計をする際に、( )の付いている金額のみを抜き出して合計したい
括弧が付いた金額と言うことはマイナスの数字なんだよね
それを加味してSUMIF関数使ってみ
例:
=SUMIF(A1:A10,"<0")
括弧を付けて文字列にしてるなら数値でなくなってるからSUM関連の関数はつかえない
>185 あんまり綺麗じゃないけど!
Sub シート確認用4()
Dim a As String
a = Range("a1").Value
ChDir ActiveWorkbook.Path
Dim flg As Boolean
Dim cnt As Long
Workbooks.Open Filename:=ActiveWorkbook.Path & "\" & a & ".XLS"
For cnt = 1 To ActiveWorkbook.Worksheets.Count
If ActiveWorkbook.Worksheets(cnt).Name = "合計" Then
flg = True
MsgBox "ok"
End If
Next
If flg = False Then
MsgBox "ng"
End If
Workbooks(a & ".XLS").Close SAVECHANGES = False
End Sub
189 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 20:38:21
すみません。MacのOffice2004のエクセルを使用しています。
Sheet1〜Sheet4まであり、Sheet4のA1〜100に名前が書いてあります。
Sheet1〜3のC列の選択したセルにVBのコンボボックスとコマンドボタン2個
を使って1つは入力、1つはキャンセルという動作で素早く入力したいのですか可能でしょうか?
よければ詳しく教えて欲しいのですが。。もしくはサイトを紹介していただけますでしょうか?
190 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 20:43:50
最近分厚いexcelの本を購入したビギナーです。
よろしくお願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はじめて聞きました
【4 VBAでの回答の可否】 必要とあれば明日本屋に駆け込みます
【5 検索キーワード 】 損益
日々価値の変動する商品があります。例えば金とか、株です。
例えばその商品、1/1 の価格が 100円 1/31での価格が90円ならば、
今月の差額は -10円であるという関数は非常に易しいですが、
今日はまだ 1/23 で、まだ1/31のセルは0としか書いてないので、
=SUM(1/31セル - 1/1セル) では-100としかでません。
今日の価格は99円になったとします。
これを、「本日の価格」、または 「0でない間近の価格」との差額を計算し、
「そうか、今月は今のところ -1円なんだな」と計算する、
とても便利な関数がありましたら、本当に勝手なお願いなのですが
わかりやすく教えてください。
よろしくお願いします。
A B
H20.1.1 100
H20.1.2 102
H20.1.3 103
H20.1.23 123
今日(1/23)の価格を出すには、=VLOOKUP(TODAY(),A1:B4,2,0)
192 :
190:2008/01/23(水) 20:53:06
本当にありがとうございます。
世の中にはパッと難問が解決できてしまうすごい方がいらっしゃるものですね。
数年後、ここで教える立場に回れるよう努力します。
重ね重ねありがとうございました。
193 :
190:2008/01/23(水) 22:10:10
たびたびすみません。
お世話になります。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 先ほどはじめて聞きました
【4 VBAでの回答の可否】 必要とあれば明日本屋に駆け込みます
【5 検索キーワード 】 間近の 最近の 空白
190の派生なのですが、
横に日付順に、例えば株価を入れます。
100 103 105 107 105 103 ....などなど。
しかし、本日以降の欄は空白です。
「入力済みの最新の値」から、「1日目の値」を引く、という関数はありますか?
検索範囲内で、空白を無視して 「値が入力されている中で一番右端」のセルの値を出す
どうぞよろしくお願いします。
A B C D E
証券コード 1/1 1/2 1/3 1/4
7621 100 101 104
=HLOOKUP(MAX(B2:E2),B2:E3,2,0)
【1 OSの種類 】WindowsXP
【2 Excelのバージョン】Excel2003
【3 VBAが使えるか 】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード 】マクロ その名前は正しくありません
一括削除やシート隠し等、簡単なマクロの記録、実行のみ経験があります。
あるブックで新しいマクロの記録をしようと、「set」という
マクロ名を指定すると、「その名前は正しくありません。」
とのポップアップがでました。これはなぜでしょうか?
※当ブックで、以前に5種程度のマクロを登録しており
最近全てのマクロを削除した経緯があります。
削除方法は、Alt+8からの削除に加えて、VBAの画面を開いて
〜の開放というのを初めて実行しました。
>>195 set ってマクロ名を一度 sex に変えて実行してみて。
197 :
195:2008/01/23(水) 23:00:00
>>196 すいません、書き忘れました。
実行まではしていませんが「sex」で
問題なく記録できることは確認済みです・・・。
198 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 23:08:09
>>195 Set ステートメント 予約語と同じ名前にすな
セックスッッッッ!!!!だろ。
201 :
195:2008/01/23(水) 23:25:47
>>198 ありがとうございます。
「set」というマクロ名は使用できないということですね。
>>199 入社したばかりなので、そんな勇気ありません・・・。
202 :
名無しさん@そうだ選挙にいこう:2008/01/23(水) 23:34:24
>>188 ありがとうございます
あれからも調べましたが、ブックを閉じた状態でシートの検索はできそうにないですね…
シートの値なんかはすぐに引っ張ってこれるのになぁ
>>195 予約語、と言われるものは使えない
分かんなかったら変数なんかは頭にaaaでもつけてれば間違いなく使用できる
aaasetとか
最高にブサイクだけどな
sexって何?それっておいしいの?気持ちいいの?
全角でsetにすれば?
画面上はプロポーショナルフォントで表示されるから、ぱっと見あんまり違和感ないよ。
>>202 ブックを開かずにシートの値が取れるの?
>>205 取れない
取れないからエラーになって以前参照した値が表示されてるだけ
Excelはこんな仕様
それを表示されてるから取れてると思い込んでるだけでしょ
207 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 07:26:25
イライラするわ
リボン死ね
208 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 07:54:56
209 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 10:21:56
突然申し訳ないですが、質問させて下さい。
脳波の分析に波グラフで波形を出して、表示をしました。
丁度、-0.3から3のメモリ(縦軸)の間を、波形が上下動いてる様な図になってます。
横軸は時間で、三秒間。
私がしたいのは、1〜2秒間の波形のマイナス部分の面積です。
関数計算みたいなのらしいのですが、聞ける人も回りに丁度おらず…。
どなたかいらっしゃいましたら、お願い致します!
>>209 サンプリングレートによって最適な方法が違ってくる。万能な方法はない。
Excelでは困難な場合もある。
とりあえず、そのグラフのスクショうp
211 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 14:05:27
条件付書式の設定で出来たら教えていただきたいのですが、
セルAとセルBにそれぞれ1という数字を入れたときにセルCの色を赤くするには
どうしたらいいでしょうか。
エクセル2002を使用しています。
212 :
211:2008/01/24(木) 14:14:53
すみません解決しました
213 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 15:35:47
excelで、漢字とかたかなを同じサイズで打ち込むにはどうすればいいんでしょう?
基本的かもしれないんですが、教えてください。
Excel 2007 でシート見出しの色を「色なし」に設定する操作をマクロに記録したところ、
以下のようなコードができました。
しかしこれを実行するとxlAutomatic(-4105)のところで「インデックスが有効範囲にありません」
というエラーになってしまいます。
この操作をマクロで実行することはできないのでしょうか?
Sub Macro4()
Sheets("xxx").Select
With ActiveWorkbook.Sheets("xxx").Tab
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
End Sub
よろしくお願いします。
>>213 フォントを2バイト文字用のものに統一しろ
「MS Pゴシック」 とか 「MS 明朝」 とか 「HG行書体」 とか2バイト文字が名前に使われている物を選べば間違いない
>>181 =CHOOSE((A1+4)/5,"あ","い","う","え","お")
>>214 マクロの自動生成コードがおかしい気がする。
.ColorIndex = xlAutomatic じゃなくて、xlColorIndexNone を代入してみたらどうでしょう?
218 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 18:37:16
質問です。
ステータスバーの「コマンド」表示の欄がセル移動で 再計算 100%と動く。
セル移動しても、「コマンド」のままで表示が動かないように設定するにはどうすれば
いいですか?
XP 2003
>>218 それ、VBAのイベントが走ってたりしない?
ツール⇒オプション⇒計算方法タブの計算方法を、自動から手動に変えたらどうでしょう?
220 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 18:56:22
レス サンクス 説明が足りず、申し訳ない。
VBAでワークシートイベントが走ってます。
同じようなブックが2つあるのですが、セル移動でひとつはコマンド欄が動き、ひとつは全く動きません。いずれも、役目はきちんと果たしています。
ツール⇒オプション⇒計算方法タブの計算方法は、どちらも自動となっています。
221 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 19:42:24
2セルごとあけてオートフィルすることはできないでしょうか?
>>221 出来ますよ。
最近流行ってるな。飛び飛びのオートフィルが。
前スレでも出てたなぁ。
>215 出鱈目教えんなよ…
>214 プロポーショナルフォント(MS Pゴシック等) "以外の"フォントを使えば良い
一般的なのはMSゴシック、MS明朝
出鱈目教えんなよ…
それは文字のサイズではなく文字間ピッチを統一したい場合だw
そもそも「同じサイズ」の意味がわからんもんな。高さなのか幅なのかバイト数なのか。
俺なら同じ幅、つまり固定ピッチフォントだと解釈するが。
フォントがGulimとかになってると予想してみる
たとえば
1000円
2000円
=SUM(x1:x2)
のように文字列として単位が付いている数をSUM関数で計算する方法はあるのでしょうか。
※SUMに限らず
228 :
名無しさん@そうだ選挙にいこう:2008/01/24(木) 22:14:43
自宅
【1 OSの種類】 Windows vista
【2 Excelのバージョン】 Excel2000
会社
【1 OSの種類】 Windows XP
【2 Excelのバージョン】 Excel2003
初心者過ぎる質問で申し訳ないのですが、
会社で使っていたexcelファイルを自宅に持ち帰ったところ、
USBメモリーから直接excelファイルを開こうとしましたが開けませんでした。
【種類】xis_auto_file このファイルを開くか、または保存しますか?
と出てきて開くを押す とその表示が消えるだけで 開かれません。
その後、ファイルをexcelの上に持っていったら開けることがわかったのですが、
これはどうして直接開くことができなかったんでしょうか?
長文失礼しました。よろしくお願い致します。
追記 ワードは直接開くことができます。
>>227 A1に「1000円」と入っているとして、次のように数値として取り出す。そしたらSUMできる。
=VALUE(LEFT(A1,LEN(A1)-1))
>>227 セルの書式設定で初めから1000を 1000円と表示させておく
【OSの種類】WindowsXP
【Excelのバージョン】Excel2003
【検索キーワード】キーボード 書式なし オートフィル
書式なしのオートフィルをキーボードだけでできないものでしょうか?
馬鹿回答者は答えんなよ
234 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 00:34:07
>>233 ゴラァー 馬鹿回答者とか失礼なことを言うもんじゃない!!!!!
誰も答える資格のある香具師がいなくなってしまうではないかwww
237 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 01:43:47
今グラフ作ってるんですが、近似曲線の線形近似を追加することはできたのですが、
近似の線がプロット位置からプロット位置までなんですが、y軸まで伸ばすにはどうすればいいのでしょうか?
【1 OSの種類 .】 WindowsXPSP2 or Windows2000SP4
【2 Excelのバージョン 】 Excel2003 or Excel2000
【3 VBAが使えるか .】 今はまだ全くダメ
【4 VBAでの回答の可否】 できるだけ否
【5 検索キーワード 】 excel 単価 変化 料金 関数
数量によって単価が変化する集計表を作っています。
例:合計値として10,000と入力した場合、
1〜5,000までは単価10、
5,001〜8,000までは単価6、
8,001〜12,000までは単価3、
12,001〜はすべて単価1とする……みたいな。
(この場合の合計金額は50,000+18,000+6,000=74,000となるです)
今まで手作業で合計値を単価ごとに手作業でバラして単純計算していましたが、
最近は数も増え、もう少しスマートに処理したいと考えています。
ヒントをいただきたく思います。よろしくお願いします。
239 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 10:27:17
>>238 やっつけ仕事で回答してみる
A1に調べたい個数を入力(今回なら10000)、
インデックスとしてB1からB5に基準、単価、個数、残り、金額と入力
C1からF1に基準となる金額、左から0,5000,8000,12000と入力
c2からf2に基準となる単価左から0,10,6,3と入力
D3に=IF($A$1-C2<0,0,$A$1-C1)
D4に=D3-E3
D5に=D2*D4
D3からD5までドラッグしてF列までオートフィル
A5(どこでもいいけど)に=sum(d5:f5)
後は適当に見出しでもつけて完成
もっとスマートな式が作れるようになりたいです・・
なんというやっつけ仕事www
ただの事務なら問題ないがこれがSEだと・・
241 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 11:11:18
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 今はまだ全くダメ
【4 VBAでの回答の可否】 できるだけ否
【5 検索キーワード 】 excel 同じ コード
膨大な量の会社データがあります。
会社名にそれぞれ部署や人の名前などがひもついています。
ひとまず、「社名」で括って、同じ社名には自動で同じコード(数字)がふられるようにしたいのですが、
なにかいい方法はありますか?
COUNTで社名の数だけカウントして、その社名の数分のコード表を作ってVLOOKUPさせて・・
という手作業が出来るほどの数ではありません
宜しくお願いします
242 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 11:45:22
>>241 やっつけ仕事二弾行くぜ
まず社名で並び替えをする
(社名がC列にあり、B列は空いていると仮定)
B1に1、B2に
=if(c1=c2,b1,b1+1)
と入力、最終行までオートフィル
その後B列すべてを選択してコピー、形式を選択して貼り付けで値を選択
並び順を変えたくない場合は以下を事前に行う
インデックスがあれば並び替えた後にそれを元に並び替え
もしない場合は、最初に作っておいてから最後に戻す
一応やり方は以下
F列まで使用しているとすると、G列に通し番号を入力しておく
そしてすべてが終わった段階でG列を元に並べ替え
新しく追加する時は前後見ながらやればいいが・・
ついでに企業名のテーブルを作っておきたい場合
(HとI列が空いてるとする。別シートの方がいいと思うがそこは変えてくれ)
値で貼り付けた直後に、J1に=max(b1:b65535)と入力
これで企業の数が出る
H1に1、H2に2・・とJ1の数字までオートフィル
I1に=vlookup(h1,&b$1:$c$65535,2)と入力
またオートフィル
更にHとIをコピーして同じ場所に値で貼り付け
終わったら、先の処理に戻る
でとりあえずはうまくいくと思う
243 :
241:2008/01/25(金) 11:57:31
>>242 すごい!ありがとう!
感動した!本当にありがとうございます。
>>238 =IF(A1>12000,80000+(A1-12000)*1,IF(A1>8000,68000+(A1-8000)*3,IF(A1>5000,50000+(A1-5000)*6,A1*10)))
245 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 12:37:28
Rnd関数で返される値を、ある任意の範囲内の数値にしたい場合には、
「Int(最大値 - 最小値 +1 ) * Rnd + 最小値」
という文を
http://www.moug.net/tech/exvba/0100028.htm このページで見かけたのですが、
最小値に+1とする理由はなんでしょうか?
rand関数の説明をしている他のページにも、
同じ記述があったのですが・・
仮に+1を抜いてみても、変化は特に見受けられなかったのですが
246 :
238:2008/01/25(金) 12:59:58
>>239 ありがとうございます。
ただ、数量が少ない場合にはマイナスの合計金額が載ってしまうからか、
合計が正しい金額にならないみたいです。
書式設定に#;!0;0をぶち込み負の数値をすべてゼロとみなすよう
試みてみましたが、この作戦だと表示がゼロになるだけのようで、
いまいちうまく行きません。
いただいたヒントをもとに、もうちょい頑張ってみます。
>>244 これはなんとエレガントな……ッ!
IF関数ってこんな使い方ができるんですね。
見れば見るほど勉強になります。
ありがとうございます!
247 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 13:12:57
>>246 すまんかった
D3に=IF($A$1-C2<0,0,$A$1-C1)
は
D3に=IF($A$1-C1<0,0,$A$1-C1)
だったな
>>242 >I1に=vlookup(h1,&b$1:$c$65535,2)と入力
&は$の間違いとしても、C65535まで指定する必要はなかんべ?
>>242の最終行までオートフィルってA65536までって意味か?
だったら分からなくもないな。
=vlookup(h1,$b$1:$c$65536,2)だろうけど。
最終行の意味がC列にデータがあるところまでって意味ならうまくないが。
>>245 最小値に+1してるわけじゃなくて、intで切り捨ててるから。
rndは0≦n<1の間の値を返すから、0〜10欲しい時にint(rnd*10)じゃ、
結果の範囲は0≦n<10。どう転んでも10には届かない。
これを切り捨てするわけだから、得られるのは0〜9まで。
そういうときは1足してint(rnd*11)でないとまずい。
>>250 なるほど、0<=n<=1と思ってました
ありがとうございます
ちょと聞いてくれよ、
>>1よ
スレと全然関係ないんだけどさ
1) 「Microsoft Word」を開く。
2) =rand (200,99) を打ち込む。
3) Enter ボタンを押して、しばし待つ。
ってやってみてくれよ
仕事中や何か飲みながらはあんまりしないほうがいいと思うぜ
会社でふいたwww
こんなスレにはるなバカw
254 :
214:2008/01/25(金) 14:41:23
255 :
名無しさん@そうだ選挙にいこう:2008/01/25(金) 17:18:09
数千個の列にならんだ数字データを一行おきに選択したいと前スレで質問して
作業列を1つ用意してA、Bと入力、Altを押しながらフィルハンドルをダブルクリック、
オートフィルタでAだけを選択、するとデータが1行置きに表示される。
あとはデータの入った列を選択してグラフを挿入。
作業列はデータ列のすぐ隣に作ること。
1行目にA、2行目にBと入力して、その2つのセルを選択してから
Alt+フィルハンドルをダブルクリック。
と回答をもらったんですがA,Bと入力するところがよくわかりません。
新しいファイルで上のA列にデータをコピペしてBを空白にして
Bのフィルハンドル(列全部選択してでてくる小さい四角ですよね?)
をALTクリックしても何もおきません・・・どうすればいいのでしょうか
要するにある列にABABABAB・・
と入力し、その列でオートフィルタ→Aを選択すれば奇数行、
Bを選択すれば偶数行が表示されるってことでしょう
俺のところ(エクセル2000)はaltを押さなくてよかったんだけど、バージョンの違いかな?
とりあえず
A、Bと入力、Altを押しながらフィルハンドルをダブルクリック
は
例としてB1、B2にそれぞれA、Bと入力後B1B2を範囲選択
その後右下の点(フィルハンドルっていうのかな)をダブルクリックすれば
一番下の行のまでababab・・と入力されるってことだな
それで、表だけなら完成だけど、グラフにするのか?
グラフにするなら、オートフィルタの後にその表をすべて選択、
delete押してからオートフィルタ解除すれば表示してない行だけ残る
>>252 Wordを数年ぶりに開いて試してみた
Word 2002 は、画期的な日本語入力・編集環境を実現した日本語ワープロです
って何だ?
=rand()でも少し出るみたいだが
VBAでの質問です。
SelectとかActivateとかを使うと動作が遅くなると聞いたことが
あるんですが、そんなに差が出るものでしょうか?
例えば、A、B、Cというブックがあって、Aにマクロを書いて
BとCを集計する場合、Windows(B)とか、Workbooks(C)とかを
書いてますが、速度を気にしたことがありません。
のです。
すみません、文章を添削してたら「のです」が残ってました。
「のです」に突っ込まないでください。
>>237 近似曲線の書式設定で予測の後方補外を0.5に。
>>255 セルB1に「A」、セルB2に「B」と入力してから、セルB1とB2を選択した状態でAltを押しながら
フィルハンドルをダブルクリックだよ。自動的にA、B、A、B、というデータが一番下まで入る。
入力するのは「A」と「B」じゃなくても「りんご」と「みかん」でも、異なった文字列ならなんでもいいんだよ。
1行目はフィルターの対象外だから、2行目からにした方がいいかな。
>>258 普通は気にしなくていいよ。
業務プログラムだと、数万件の行を扱う事がザラにあるから、
ヘタに組んじゃうと極端に遅くなるっていう話ね。
基本的に、常に補助入力が有効になるようにコードを組んどけば、実行速度には有利になる。
事前バインディングってやつだけど。
>>258 10倍20倍の差が出ることもあるが、
10ms(0.01秒)が20倍の200ms(0.2秒)になったところでさして問題は無いだろう
262も言ってる通り、扱うデータが膨大になったり
処理が複雑になったりした場合に考えれば良い
現時点で気になってないということは、君はまだその域には居ないんだろうから
しばらくは気にしなくていいと思うよ
264 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 01:24:17
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 テキスト 保存
Excelでタブ区切りでテキスト保存する方法は分かるのですが
タブなしでテキスト保存するにはどうしたら良いのでしょうか?
例えば
愛 ai
蟻 ari
鍵 kagi
という表を
愛ai蟻ari鍵kagi
というように完全にタブもスペースもないテキストデータにしたいのですが。
お願い致します。
>>264 データ量にもよるけど、VBA不可だとExcelでは基本的に無理。
ベクターでフリーのテキストエディタを落としてきて、タブと改行を一括削除が一番速くて簡単。
ごく少量なら別のシートに結合済みのデータを作って保存という方法もあるが。
>264
vba不可でオフィスだけでやるなら
タブ区切りで保存
ワードで開く
タブを置換して消す(オプション→あいまい検索のチェック外す→特殊文字→タブ でタブが検索できる)
同じく段落記号を置換して消す
保存
267 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 01:47:18
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 文字数カウント
Excelで複数セルに渡るものの文字数をカウントするにはどうしらたら良いのでしょうか?
ネットで検索したところ
=+LEN(A1)
で出来ると書かれていたのですが
単一セルだと出来るのですが
複数セルだとうまくいきません。
どうすれば良いでしょうか?
>267
=LEN(A1&A2&A3)
の形で文字列くっつけるしかないのかも
数多いなら作業範囲作って、セルごとにカウントして合計のほうが速いと思われます
269 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 02:03:42
>>268 ありがとうございます。
どういうことですか?
初心者なのでよく分かりません。
>269
カウントしたい範囲が
A1から3行・4列に渡ってるとしたら、
たとえばA10からD12の範囲で作業を行う
A10に =LEN(A1) と入れて作業を行う範囲にコピー
んで、その範囲の合計をする。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ?
【4 VBAでの回答の可否】 ?
【5 検索キーワード 】 ?
エクセルの勉強を始めたばかりなのですが、
『桁区切り』や『パーセントスタイル』を解除するにはどうしたらいいのでしょうか?
272 :
271:2008/01/26(土) 10:44:11
追記です
Ctrl+Z以外の方法で、デス
セルを右クリックして「セルの書式設定」
274 :
271:2008/01/26(土) 11:39:39
>>267 どうしても作業列がいやなら
=SUM(LEN(A1:A10))としてshit + cntrl + enterもある。
とかくDQNが大好きな=SUMPRODUCT(LEN(A1:A10))でもいいが。
276 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 12:30:40
DQNが好きというのはどういうところから
そう思われるのでしょうか?
278 :
277:2008/01/26(土) 12:56:41
という俺もDQNだがな
279 :
276:2008/01/26(土) 12:57:30
俺以上にDQNがいるわけがない
レス番、本気で間違えた。
やっぱり俺が最強のDQNだ。
281 :
277:2008/01/26(土) 13:06:24
いや俺こそが最強のDQNです。
=SUM(INDEX(LEN(A1:A10),))も好きだしな。
そろそろ飽きた
283 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 16:00:35
Excelにはセルの右下をドラッグすることで
数字の連番を作る機能がありますが(オートコンプリートと言うんでしたっけ?)
これはドラッグするセルの数が少なければ問題ないのですが
数百とか数千とかになると、すぐに行き過ぎてしまったりして
うまくセレクトすることが出来ません。
これを、例えばシフトを使って複数選択するなどの
方法などで簡単に行うことは出来ないのでしょうか?
>>283 左上の名前ボックスにA1:A3500とか入れればいいよ
それで編集→フィル→連続データ
285 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 16:53:09
名前ボックスに値を入れても
編集→フィル→連続データをクリックすると
値を消えてしまうのですがどうすれば良いのでしょうか?
286 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 17:22:52
初歩的な質問ですいませんが、セルに文字を入力する際、
ダブルクリックすれば入力できますが、ダブルクリックしないで、
キーボードの何かを押せば、文字が入力できるようにはならないでしょうか?
F2
289 :
286:2008/01/26(土) 17:31:17
すいません、質問の仕方が間違ってました。 ○| ̄|_
既に入力されている文字を訂正したい場合、ダブルクリックすれば
訂正前の文字が残ったまま、カーソルが点滅しますよね。
その状態に、ダブルクリックしないで、キーボードから操作できないでしょうか?
というのが質問です。上書きすればいい話なんですが、既に入力されている文字を
残したまま、訂正したいので。
>>288 あ、レス書いてるうちに回答が!
F2押したらできました!! ありがとうございました。
【1 OSの種類 .】 Windows XP Home
【2 Excelのバージョン 】 Excel 2003 Pro
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 プルダウン
質問なのですが、「A」というシートで作ったデータのそれぞれの題名(縦に並べてます)を、
「B」というシートでプルダウン形式で選択して、さらにその同じ行に入力してあるデータを
「B」のシートでも「A」と同じように並べることは可能でしょうか?
イメージとしては「B」に「A」のデータを行単位で引っ張り出す。その方法はプルダウンという感じです。
なんだかうまく説明できてる気がしませんが、どうかお願いします
>>291 名前を付ければ可能
あとはvlookup等を使用したらおk
293 :
291:2008/01/26(土) 19:20:19
>>292 レスありがとうございます。「A」でつけた名前の一覧を「B」のプルダウンで選択して、
その結果同じ行に「A」のデータ部分を表示させる、という処理もvlookupで可能
なのでしょうか?
そもそもの質問の仕方がおかしいばかりに重ねての質問になってしまい申しわけありません
295 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 21:30:41
式の始めに「=」でなく、
>>267 さんのように「=+」と入力する人を
ときどき見かけるのですが、どこかでそう教えられているのですか?
「=+」を使う人って多いのでしょうか。
>>295 マルチプランの頃から使っていた人なのかな?
297 :
名無しさん@そうだ選挙にいこう:2008/01/26(土) 23:01:46
>>281 最強のDQNさん、=sum(index(len(範囲),)) について
その式、初めて見たんだけど、その式のコンビネーションの詳細情報を求めたい。
それと、貴方なら知っていそうなのでききたい。
index関数で行又は列の指定でゼロとする場合は、具体的にどんな場合ですか?
>>281 これって、
・index関数の中なら、LEN関数などを配列数式的につかえる
INDEX(LEN(A1:A10),,)→index({LEN(A1);LEN(A2)…;LEN(A10)},,)
・index関数の行指定などを省略すると行全体等が帰り値になる
index(A1:C10,,2)→B1:B10
ってことでいいんでしょうか?
299 :
297 ◆wkj7cNdS3Y :2008/01/27(日) 00:08:56
>>298 サンクス
配列を全く、意識していませんでした。
自分にとってすごく、勉強になり、重ねてサンクス。
WindowsXPPro
Excel2003Personal
特定のシートで数式が戻り値を返さずに数式のまま
表示されてしまうのですが、
シートが壊れてしまったのでしょうか?
>>300 セルの書式を見て文字列になっているなら標準なりにかえる
>>301 書式は標準になってました。
数式を他のシートに貼り付けるとちゃんと戻り値を表示するので
数式が悪いわけではない気がします。
303 :
名無しさん@そうだ選挙にいこう:2008/01/27(日) 01:31:23
なら、数式を書いて聞くべき
'がついていれば、'をはずせ
折れは寝る
>>302 数式を表示する状態になっている。
数式を表示するか結果の値を表示するかはどこかで設定できる。
いまこちらの手元にあるバージョンとは異なるので正確には伝えられないけど、
ちゃんとできます。
いろんなところの表示を確認してみてください。
305 :
名無しさん@そうだ選挙にいこう:2008/01/27(日) 01:50:46
もしご存知の方がいらっしゃったら教えてください。
データベースに以下の数字があったとしてます。
200
140
480
20
この数字の中からどれかを足して500を求めたいのですが、
エクセルの関数で該当するようなものありますでしょうか。
結果として480と20が何かしらの方法で把握できれば良いのですが、
ご存知の方がいらっしゃったら、是非、教えてください。
>>300 特定のシートだけで起こるなら、正常なシートにそのセルをコピペしてみろ。
先頭に "="が付いてないだけだったりしたらヌッ頃すから、くれぐれも用心しろ。
>>305 足しこむ数字の数が、常に2つなんだったら、そんなに難しくないと思う。
例えば、200 が書いてあるセルを A1 とすれば、
=VLOOKUP(500-A1, A1:A4, 1, False)
これを、B1にでも書いて下にコピーすれば把握はできる。
308 :
307:2008/01/27(日) 01:59:57
あ、間違えた。 × A1:A4 ○ $A$1:$A$4 こうしないとダメだな、多分。
310 :
名無しさん@そうだ選挙にいこう:2008/01/27(日) 02:05:40
>>307 レスどうもありがとうございます。
なるほどVLOOKUPで差額を求めるということですね。
実は会社の製品をいくつか売り上げて、請求書通りに払ってこない
顧客も中にはあり、そのような顧客の売掛金の消し込みの方法を考えています。
そのため、常に2つとは限らないのですが、大変参考になりました。
どうもありがとうございます。
311 :
名無しさん@そうだ選挙にいこう:2008/01/27(日) 02:11:15
>>309 ソルバーという解析機能があるのですね(今、調べました)。
勉強になりました。
誠にありがとうございます。
>>310みたいに、そういうのを先に言っておけばもっといい方法が
出てくるかも知れないのに、
わかりやすくするつもりで言い方変えちゃうもんだから
その質問の書き込みに合わせた答えしか返ってこない。
質問したい人がいて答えてくれる人もいるのにこれはほんとにもったいないことだと思う。
>>300 ツール→オプション→表示→ウィンドウオプション→数式のチェックをはずす
>>297 そういうDQNなINDEX使っては駄目だからな。
配列数式よりメリットがあれば別だが、まったくない。
315 :
295:2008/01/27(日) 10:13:48
>>296 マルチプランがそうだったとは知りませんでした。
高校生くらいの子が「=+」を使っているのを見たので、
先生か誰かに教えてもらったのでしょうね。
レスありがとうございました。
>>315 今でもMacのExcel使ってる人はそうするんじゃない?
=は打たなくていいんだからな。
=3*2は+3*2でいい。
テンキーのみで済む。
むかーしLotus1-2-3てのがあってな……
今でもあるけど、何か?
俺はR5Jを最後に使ってないが
Lotus1-2-3がほぼ駆逐されたのは、Excel5にVBAが使えるようになったから?
それともWindous対応に1-2-3が遅れたから?
Office搭載モデルがMSの戦略的な値下げで結果的に売れたからだろうね。
昔は「一太郎+Lotus」がインストールされた機種も選べたんだから。
>>319 Windowsを知り尽くしているMSだから他社に先行してWin対応Officeをすぐに
発売。他社は一太郎も含めWin対応に追われているうちに(バグでまくり)、
MSがバンドル販売戦略を展開。
さらにVBAのすごさが理解されるに従い、Excel以外の選択肢がなくなる
というMSにとって好循環が開始。
で、その他大勢死亡という流れ。
IEだってIE4でDOMを実装して、その場しのぎのネスケNC4死亡が確定したよな。
まあいずれにせよVBA搭載のExcel95があったからこそ、Excelとバンドルされない
ソフトの死亡が決定的になったんだよ。まさにキラーアプリ。
当時は大半がExcel+一太郎の組み合わせを望んできたのにな。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】
グラフでX軸の下に2種類の数値を色を分けて表示させ、2つの折れ線グラフを色を分けて作成したいのですが、どう頑張ってもできません・・・
ご指導お願いします・・・
|
┼────────────────
| 5 10 15
| 0.05 0.1
324 :
323:2008/01/27(日) 13:09:07
↑途中で送信してしまいました・・・・
y
|
┼────────────────x
| 5 10 15
| 0.05 0.1 0.15
分かり辛いと思うので例を示しました。このようにしたいと思っています。よろしくお願いします!
Excel2007で上下ではなく左右のスクロールをキーボードだけで出来ますか?
マウスジェスチャに割当できなくて不便です
自然対数の底eについて質問です。
eを用いた計算をするときに、近似値としてe = 2.71828183を直接打ち込んでいつも計算しているのですが、
コマンドでeを表示させることはできないのでしょうか?
=exp(1)
>>328 ありがとうございます!
eの一乗ってことですね。
eの何乗かにしたければ( )の中をその数字に。
助かりました
330 :
新し:2008/01/27(日) 18:53:58
質問です。
過去やネットでわかりそうなので調べているのですが、解決しません。
よろしくお願いします。
力仕事でやればできそうですが、マクロで解決したいのです。
【1 OSの種類 .】 Windows vista
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル マクロ select case 電話番号
電話番号は0から始まり、途中にハイフン「−」が入りきれいに見えます。
検索に使う場合、ハイフンが不要ですので削除しました。
このハイフンを削除した9桁から11桁の番号を、ハイフン付きの電話番号に戻したいのです。
最初のハイフンまで、03、04、090、0285、など 2桁から4桁、時に5桁のところもあります。
left関数などで、select case を使うぐらいでしょうか。
電話番号の横に03、04、090、0285などの列をつくり、それぞれFINDで電話番号の中に含まれていれば1になるような式をつくり、
さらに別の列にSUBSTITUTEで市外局番を削除した残りの電話番号をつくる。あとはそれらをくっつければいいから簡単だな。
332 :
名無しさん@そうだ選挙にいこう:2008/01/27(日) 20:20:03
マクロ・VBAを独学で学び初めて1日目です。
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 超初心者
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル マクロ 罫線 Borders
FOM出版を使ってます。
「Borders プロパティ」の構文が
オブジェクト.Borders (引数)
となっております。
「()かっこ内で指定した引数のとおり罫線を引く」と書いてあったので、
Sub セル範囲内の中央に水平の線を引く()
Selection.Borders xlInsideHorizontal
End Sub
と入力しても、エラーがおきてしまいます。
どういうモジュールを書けばよいのでしょうか・・・。
よろしくお願い致します。
334 :
新し:2008/01/27(日) 21:36:15
>>331 ありがとうございます。
簡単ですけど、まさに、力仕事ですね。
もう少し、スマートなやり方はないものでしょうか。
マクロを期待していましたが、期待しすぎでしょうか。
335 :
新し:2008/01/27(日) 21:47:31
追加で
市外局番には、04、048、0480 となるものがあり、もうひとひねり必要になります。
これは、優先順位を決めればできますが、やはり、力仕事になります。
同じことをマクロでやればいいんじゃないかな
>>334 そのロジック(電話番号への簡単なハイフン挿入処理)を作れれば儲かる、
と言われてるほど、本質的には難しい処理だと聞いたことがある気がする。
090からの11桁もあれば、0xxx - x - xxxx なんて番号もあるからね。
>>331 ハイフンの入った元データがなくなってしまったって事?
そうでなく、単に検索のためにハイフン取ったのなら、ハイフンありとハイフンなし
を併記してデータ作っておけばいいだけだろうけど。
(そういうことならハイフンつけたままのデータから検索すればいいんだけどな)
340 :
新し:2008/01/27(日) 23:26:04
>>339 検索と電話などで新規に取得したデータ作成の場合には、少しでも速くくする
ためハイフンははずします。
連続数字の電話番号を取得したのち、併記もできますが、データが多くなると
大変です。
過去の蓄積した連続番号から、ネットで住所を参考に市外局番の取出しをする
のです。
ネット検索で分かったことは、ハイフンまでの市外局番の種類が意外に多いな
、ということでした。
番号の付け方に、何か法則があれば知りたいと思いますし、そうすれば、他の
解決手段も導き出せるかもしれない、と考えます。
それで、ハイフン外したデータとは別に、ハイフンのあるデータは手元にあるの?ないの?
単純に考えていちばん早いのは、併記しておいて、検索はハイフンなしの列でして、拾うデータはありの列ですること。
電話番号に規則性なんて無いんだから、調べる手間考えたら処理速度が遅い事なんて屁みたいなもん。
343 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 00:29:13
グラフの作成法に関する質問です。
今 A(2.3) B(1.5) C(2.1) ・・・・・・
などのような(x.y)で表されるデータがあり、x軸にxのデータy軸にyのデータをプロットしようとしています。
そこまでは自分でもできたのですが、グラフ上に表示される点をただの点ではなくて、
A B Cのようにそのデータ名をグラフ上に表示させたいのです。
こういったことはエクセルでできるのでしょうか?
WindowsXP Excel2003 VBAは余りわかりません VBAでの回答可
part 62スレより抜粋----------------------------------
551
>すでに雛形は作っているファイルに必要な部分を記入したあとに
>ファイル名をつけて保存するを選んだときに
>自動で当日の日付を入れるようにしたいのですが
>ご助言お願いします。
>
>例: 今日の献立20071203
553
>
>>551 >Dim Save_File, Save_Filename As String
>Save_Filename = Format(Date, "yyyymmdd")
>Save_File = Application.GetSaveAsFilename(Save_Filename)
>On Error GoTo ERR1
>If Save_File <> "False" Then
>ActiveWorkbook.SaveAs Filename:=Save_File
>End If
>これでどうだろう。
------------------------------------------------
このような質問回答があったのですが、名前を付けて保存する際に、
すでにファイルが存在した場合、ウィンドウズが注意のメッセージを出してくれます
”すでにファイルが存在します。上書きしますか?”のようなメッセージで
加えて はい いいえ キャンセル の選択肢とともに。
ここで いいえ もしくは キャンセルを選択すると
実行時エラー1004
SaveAs メソッドは失敗しました _Workbookオブジェクト
と出ます。
■レス行数オーバーのためレス跨ぎます
345 :
344:2008/01/28(月) 00:46:18
ここで、質問なのですが、
@On Errorを噛ませているにもかかわらず
エラー時に飛ばずにストップしてしまうのはなぜでしょうか?
(ちなみにGoto先でちゃんとERR1は作ってます)
A保存時の処理はこれで良いのですが、いいえもしくはキャンセル選択時は
そのままキャンセルさせたいのですが、どのように記述すれば良いでしょうか?
長くなりましたがどうぞよろしくお願いします。
$ってどういう記号でしょうか?この文の意味を教えてください・・
C列の文なんですが何をしようとしてるかさっぱりわからないです
IF(A1<$B$1,IF(A1>-$B$1,1,0),0)
>>346 そのセルを別のセルにコピーした時に、列番号や行番号が変わってほしくない時に使う記号。
だから、そこだけを見ても意味はない。
「絶対参照」でググってみれ。
ひとつのセルに計算式を入れて、それを数字ずらしてその列のセル全部に適応
させるのはどうすればよいでしょうか?
たとえばB2はA1+A2、B3はA2+A3、B4はA3+A4の値という風に
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ユーザーフォームを作っているのですが、コマンドボタンやラベルの上にマウスを持っていくと
ヘルプが表示されるようにしたいのですが、どこかで見かけた覚えがあるのですが、やり方がわかりません。
やはりVBAのコードの問題なのでしょうか?
>>352 ControlTipTextプロパティ
354 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 13:18:12
エクセル2003で、VBAでプログラム書いてるんですが
セルではなくオートしぇいぷが選択されたり変更されたときに
その動作を取得可能なイベントってわかりませんか?
Changeイベントではasのあとをrangeからshapeにかえたりしてもうまくいきません。
自己解決しました。ありがとうございました。
「フォント」をクリックすると、見たこともないフォントが大量にあるのですが、
要らないフォントを消すにはどうすればいいでしょうか?
357 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 13:37:42
>>356 ウィンドウズのコンパネのフォントから消去するしかないはず。
エクセル側で使用フォントを限定するのは無理とオモ。
>>356 ヘタに消すとWindowsがおかしくなるから注意。
消してもいいフォント一覧はぐぐれば出てくる。
>>354 オートシェイプを右クリックでマクロの登録
A列の最下行はRange("A65536").End(xlUp)で取得できますが、
各列の最下行をRowで取得するには、どう書けばいいです?
>>360 Range("A65536")
ここをRange("B65536")、Range("C65536")、Range("D65536")にするだけじゃね?
Excel2007だと最大65536行じゃないんで
Range("A" & Rows.Count)のほうがいいと思うぜ
362 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 18:25:17
スクロールしたら上に消えて見えなくなる見出しを
スクロールしても常に上に表示させる方法があったと思うのですが
やり方がわかりません。
また、ググるにしても抽象的でどう検索をかけたらいいか分かりません。
教えてください。
EXCELのバージョンは2002 SP1となっています。
OSはXPです。
ウィンドウ枠の固定?
365 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 19:56:27
Excelの計算式あるいはマクロで、下記のような処理をしたいと思っています。
「入室管理区域への出入り記録(タブ区切りテキスト)から、個人個人の特定の期間における入室時間が、一週間あたり24時間を超えていないかどうか」を判定する
データとしては、次のような形になっています。
日付 時刻 氏名 動作
2008/1/21 14:55:01 ギコ夫 入室
2008/1/21 14:59:45 ギコ夫 退室
2008/1/21 15:25:50 ひろゆき 入室
2008/1/21 15:26:05 フサ夫 入室
2008/1/21 15:49:25 フサ夫 退室
2008/1/21 15:58:10 ひろゆき 退室
このデータを、「一週間あたり」に分け、一人ずつの「退室時刻−入室時刻」の合計を計算したい、ということです。
このとき注意すべき点は、
1)入室する可能性がある氏名リストは100名ほどだが、その全員が入室するとは限らない
2)ある個人の入退室の間に、別の人間の入退室記録が入る場合がある
などがあります。
さらに厄介なのが、
3)まれに、入室あるいは退室の記録を忘れる人がいる
ということです。
1)と2)はなんとか自力で対応できそうなのですが、3)をどうすればよいのかがよく分かりません。
入室時間が不明の場合は、一律「10分間」としても構わないのですが。
どなたかアイデアをお貸し下さい。。
データのフォーマットが悪い。入退室の記録を忘れるとかは半分以上フォーマットの問題。
日付 氏名 入室時刻 退室時刻 在室時間
にすべき。できないなら、まずこういうフォーマットに変換するにはどうすればいいかを考えないといけない。
>3)をどうすればよいのかがよく分かりません。
回答者は>365以上にどうすれば良いのかよくわからんと思うw
どうするかの方向性は質問者が作らないとどうしようもないw
3)の場合は○○にする。
とする場合のやり方教えてください。なら良いけど。
>>365 つか質問がわからん.
>1)と2)はなんとか自力で対応できそうなのですが
なら頑張れ。
>一律「10分間」としても構わない
じゃぁそれで。
別に嫌がらせとかじゃなくて、何を質問しに来たのかわからん。マジで。
>>368のレスは半分嫌がらせで出来ています
でも残り半分は正論で出来ています
370 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 20:26:40
>>365 勝手に決めると越権になるぞ。
>>367 に対しての返答はおまえが答えてはいけないことだ。
マクロ暦8ヶ月(たまに扱う程度の俺が作るとこうなったんだけど、
お前らならこのマクロに何点付ける?
Sub ギコ夫()
For i = 2 To 100
If Cells(i, 3) = "ギコ夫" And Cells(i, 5) = "入室" Then
a = a + 1
aaa = aaa + Cells(i, 2)
ElseIf Cells(i, 3) = "ギコ夫" And Cells(i, 5) = "退室" Then
b = b + 1
bbb = bbb + Cells(i, 2)
End If
Next i
If b = a Then
ccc = bbb - aaa
MsgBox Format(ccc, "hh:mm:ss")
Else
MsgBox "ギコ夫、入退室ボタン押し忘れ -500円"
End If
End Sub
>>361 その場合、
Cells(Rows.Count, 1).End(xlUp)
のほうがいいと思うぜ
型変換と文字列連結という無駄な処理を踏まないで済むし
ループも組みやすい
>>365 他の人も言ってるとおり、3)の場合どのように処理したいのか解らないし
1)と2)をどのように実装しようとしてるかでも話は変わってくる
俺ならClassとCollectionかDictionaryを使って1)と2)の処理をして
3)に関しては「1回の最大入室時間が1時間を超えることはない」などの条件があるなら
入室から1時間以内に退室が無ければ「退室記録忘れ」のフラグを立てる
但し俺も個人的には
>>366の方法を推奨する
こういったことでややこしくなってる奴って、大抵大元のフォーマットに問題があるんだよね
>>366と
>>372は同意してるけどズレテルだろ?論点。
>>366は乳体質の記録忘れはフォーマットが悪いため
>>372はマクロ作成に伴い、やりづらい面があるのは元フォーマットが悪いため
だろ?
つか
>>366フォーマットの良し悪しと、入隊質の押し忘れ、関係なくね?
>372はわかるけど。
ツーか、マクロOKの場合なら、フォーマットなんて正直どんなにややこしくても
いくらでも扱いやすい形にできるじゃん。
>>365で>入室管理区域への出入り記録(タブ区切りテキスト)ってあるんだから、
専用のタイムカードっぽいものから出力されてるもので、専用機の場合も考えられる。
マクロOKで質問してるのに、フォーマットを云々みたいな回答ださくね?
そんな回答、はっきり言って、
もとのテキストファイルに最初から合計時間出させるフォーマットで出力しろ。
と言ってるのとなんら変わらんレベル。
だから、変えるのが無理なら計算しやすいフォーマットに変換しないといかんといってるやん。
直接できる、その方が簡単だっていうなら無理に変換する必要はないけどね
ユーザーホーム上にイメージ枠を作り中に図を入れ
イメージ枠を非表示にしたいのですが、どのようにすればよいでしょうか?
IC社員証をピッとかざして入退室記録してるから生データが>365なのかもしれない。
データ保管室かなんかで入室時間が異様に長い場合データを盗んでいるんじゃ
ないかと w
などといろいろ想像してしまった。
まあ、機械でデータ取ってるんだろうなと考えた人と、紙にでも書かせている
(若しくは自分or秘書が入力している)などと考えている人の前提の違いの
ような気がする。
378 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 23:15:03
すみません、
>>365です。
今帰宅しました。
出力結果は、セ○ムの入退室管理ソフトの出力形式がそうなっているためです。
このソフトでは「一週間単位の個人ごとのトータル入室時間」というものを計算する方法が用意されていないため、
自分でExcelに持ち込んでやるしかないのです。
なので、データのフォーマットが悪いというご指摘は、その通りなんですがセ○ムが悪いってことで勘弁してください。
それから3)の処理ですが、入室時間が不明の場合は、「10分間入室していたことにしてよい」と管理者の方の許可
をいただいています。
分かりにくくてすみませんでした。
ただし、「入室」の記録がない場合と、「退室」の記録がない場合の両方があって困っているのです。
おそらく、同時に誰かと入退室した際に、自分のICカードを使わずに出入りしているものと思われます。
場合によっては、入室と退室の両方の記録が漏れていることも考えられますが、その場合は計算ができないので
対象外とします。
そんな感じです。
gdgdな質問ですみません。
あ、なお、今のところやろうとしたのは、ユニークユーザごとに入退室時刻を拾い出し、
「動作」カラムが「入室」なら−1倍、「退室」なら1倍して、一週間ごとに合計を出す、
という方法です。
この場合、(当然ですが)入室と退室の数が一致しないと、とんでもない数値が出て
しまいます。。
ご教示をお待ちしております。
J列(適当)に名前の一覧があるとして、これでどうだろ?
Private Sub CommandButton1_Click()
For j = 1 To 100
a = 0
b = 0
aaa = 0
bbb = 0
For i = 2 To 100
If Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "入室" Then
a = a + 1
aaa = aaa + Cells(i, 2)
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "退室" Then
b = b + 1
bbb = bbb + Cells(i, 2)
End If
Next i
If b = a Then
ccc = bbb - aaa
Cells(j, 10 + 1) = Format(ccc, "hh:mm:ss")
Else
Cells(j, 10 + 1) = "入退室ボタン押し忘れ -500円"
End If
If ccc > 1 Then
Cells(j, 10 + 2) = "居座りすぎ"
End If
Next j
End Sub
381 :
名無しさん@そうだ選挙にいこう:2008/01/28(月) 23:39:58
>>359 ども。
もちろんそれは存じてます。
でもマクロ記録するだけでは
他のチェックボタンを使用して変更されたことを検知して処理
という手順すかできず、ま、それは今しのぎ的に使ってる手法なんです。
いまやりたいのは、
テキストボックスに数値が入力された場合、
数値が一定の範囲を越えていたら背景を橙色に変えるとか、
警告ダイアログを出すとか、
あるいは
四角形オートしぇいぷをクリックするたび色を赤、青、黄と変化させたり、
四角形オートしぇいぷの大きさを変えても、俊二に元に戻るような
しかけを付けたりしたいわけなんです。
セルでは何の問題もなくこれらはできているのですが
オートしぇいぷの場合はやり方がわかりません
何とか方法がないでしょうか?
382 :
365:2008/01/28(月) 23:44:42
>>380 ありがとうございます。
a、bを入退室の回数、aaa、bbbを入退室時刻の和として、cccを総入室時間としてK列に表示するわけでしょうか。
ただ、入室または退室が記録から漏れた場合の処理(10分間とみなす)はどのようにすればよいのでしょう?
それと、「一週間ごと」の処理もよく分かりませんでした。
一週間ごとに関しては、日付からWeekday関数で曜日を1〜7で表したカラムを作り、曜日カラムの数値が減るまで
同じ処理を続けて、減ったらカウント1うpする、という風にやればループさせられますかね?
383 :
365:2008/01/28(月) 23:53:50
最後の段落のところで、a>bとa<bの場合に分けたらいいのかと一瞬思ったんですが、
よく考えたら、たとえば同一人物の「入室」が3回続いて「退室」が3回続いたりした場合、
3)の「10分ルール」を適用すると、6階の入退室で60分、とカウントすることになるわけ
ですよね。
なのでやっぱり、入室と退室を先に合計してしまうのはまずいんじゃ?と思うんですが。
A)入室→退室
B)入室→入室
C)退室→入室
D)退室→退室
の4通りに分けた上で、退室時刻から入室時刻を引くか、10分を加えるか、の処理を
判断して行なう必要がある、ってことでしょうか。
384 :
365:2008/01/28(月) 23:54:57
↑
× 6階
○ 6回
385 :
365:2008/01/28(月) 23:58:51
>>383 >同一人物の「入室」が3回続いて「退室」が3回続いたりした場合
あ、違うや。
3回目の入室と1回目の退室は正しい順番なんだから、この場合は
10分×2回(入室)+(退室時刻−入室時刻)+10分×2回(退室)
になるのか。
387 :
365:2008/01/29(火) 00:05:56
>>386 うー、すみません、難しいです。。
とりあえず今日のところはエロ動画見て寝ます。
また明日、職場から見に来ます。
おやすみなさい。
ロジックをどうすればいいか知りたいのか?
>383が分かったのなら、まずは特定の人物でどのようなパターンがあるか
考えて計算させれば良いじゃん。時間の若い順に並べて
1) 退室なら入室の記録忘れとして処理。
2) 入室→退室ならまんま計算
3) 入室→入室なら退室の記録忘れとして処理
と必ず入室・退室のセットで考えるようにして、上記の1)や3)の場合は
記録忘れ分を補完すればいい。そして、上記の処理を繰り返す。
これを記載された人物名を全て行う。
入室→退室となっていても1時間以上となるはずがないことが確かであれば、
この場合は退室・入室を一回ずつ記録漏れとして処理しないといけない。
これ以上はエスパーでないとどうしようもないよ。
>>382 適当なセルに入室のときと退室のときの上京を示してやれば良い
入室ならZ1に+を、退室なら-を入れる
if range(z1)="+" and Cells(i, 4) =入室 then
入室が続いている状態
一つ前に加えた Cells(i, 2)を引く
でどう?
曜日区切りはそれでおkだとおもう
365はものすごいやつだな。
同感。 387にしても、面白く言ったつもりかもしれんが、信じられんわ。
Private Sub CommandButton1_Click()
For j = 1 To 100
a = 0
b = 0
aaa = 0
bbb = 0
Range("e1") = "-"
For i = 2 To 100
If Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "入室" And Range("e1") = "-" Then
aaa = aaa + Cells(i, 2)
Range("e2") = Cells(i, 2)
Range("e1") = "+"
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "退室" And Range("e1") = "-" Then
bbb = bbb + 1 / 24 / 60 * 10
Range("e3") = Cells(i, 2)
Range("e1") = "-"
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "入室" And Range("e1") = "+" Then
aaa = aaa - Range("e2")
aaa = aaa + 1 / 24 / 60 * 10
aaa = aaa + Cells(i, 2)
Range("e2") = Cells(i, 2)
Range("e1") = "+"
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "退室" And Range("e1") = "+" Then
bbb = bbb + Cells(i, 2)
Range("e3") = Cells(i, 2)
Range("e1") = "-"
End If
Next i
ccc = bbb - aaa
Cells(j, 10 + 1) = Format(ccc, "hh:mm:ss")
Cells(j, 10 + 2) = Format(aaa, "hh:mm:ss")
Cells(j, 10 + 3) = Format(bbb, "hh:mm:ss")
Cells(j, 10 + 1) = Format(ccc, "hh:mm:ss")
Next j
'
>>391-392 End Sub
>392-393
E1には前回の記録が入室(+)か退室(-)かの記録を残す
E2には前回の入室時間記録(後で引く用
E3には前回の退出時間記録(後で引く用
If Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "入室" And Range("e1") = "-" Then
一発目の分岐:>383のA)
入室時間をaaaに加算
E2に入室時間を入力
E1に+を入力
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "退室" And Range("e1") = "-" Then
二発目の分岐:>383のD)
10分加える
E3に退出時間を入力
E1に-を入力
こんな感じで
>>393の3つ目、4つ目と分岐する。
最後の
Cells(j, 10 + 2) = Format(aaa, "hh:mm:ss")
Cells(j, 10 + 3) = Format(bbb, "hh:mm:ss")
Cells(j, 10 + 1) = Format(ccc, "hh:mm:ss")
は不要。値確認用に作ってただけ
396 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 01:25:01
>>365 決定的解決策が思いつきそうなんですが、その前に具体的な重要な質問をさせてください。
まず、@名前ですが、これは警備会社のデータベースで一元管理されてるんですよね?
つまり一人の人物の名前はつねに一種類しかないんですよね?
入退室時に時間や名前を手入力で入れたりして同一人物が複数の名前を入力してしまったりする可能性があると困るからです。
次にA時間についてですが
一人の時間は約10分とのことですが
同一人物が30分40分滞在する可能性はないんですよね?
というのは、
一回が10分程度と決まってるならいいんですが、
そうでないと、例えばある人が14:00に入室記録して、次の記録が14:40退室だとした場合、
一回10分の法則を適応できるなら、仮の退室・入室時間を決めて
14:10に退室、14:20に再入室したことにして総滞在時間20分という計算になるのですが
そうでない場合、40分ずっと滞在していたのと区別がつかないからです。
この場合、入退室間隔が何分いないの場合は一続きとみなす、といった更なる条件設定が必要になると思うのですが。
>>396 よく嫁
入室と対になる退室記録がなかった時だけ、滞在時間を10分間にする
ところで深夜0時をまたがる滞在や、24時間を超える滞在時間はありうるのか?
398 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 07:19:11
日曜には必ず入室しない、って設定もあるとらくなんだがなあ
そういうわけにもいかんか
399 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 09:25:52
>>397 いや、それが曖昧だと思うんですよ。
対になるという定義がなされてないから、
二時間後でも8時間後でも対になったら滞在していたことにしてしまうのか
厳密にルール決めないと変なデータ取得しちまいますよ。
あなたが言うように24時間出入りがある場合とかも勘案すれば
今日の14時に入室記録だけ、明日の10時に退室記録だけあるとしたら
それだって対になっちまうんですよ?
400 :
365:2008/01/29(火) 09:56:45
おはようございます。
みなさん、私が寝ている間にいろいろとありがとうございました。
非常に助かります。
>>395 とても参考になりました。
まだExcelは立ち上げてもいないんですが、ざっと見た限りなんだかいけそうな気がします。
これからトライしてみますね。
>>396 決定的解決策、という言葉にグラッと来ますね。
ユーザ名はユニークデータと思って間違いないです。
ただし、入室時間については、数時間程度なら入りっぱなしになる可能性もあり得ます。
日曜日の利用もあり得ますが、日をまたぐことはありません。
というより、一般ユーザの使用時刻は、朝8時半〜夜8時に限られています。
(これ言ってませんでしたね)
なので、入室から退室までの間が11時間半以上空くことは絶対にあり得ません。
こんなところですが、何か参考になりますでしょうか。
ちなみに、昨日のエロ動画は温泉盗撮モノでした。
それでは、今日も一日仕事を頑張ります。
401 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 10:54:26
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】否
【5 検索キーワード 】フィルタ オートフィルタ コピー ペースト
オートフィルタで抽出したセルをコピペしたいのです。
オートフィルタ→ジャンプ→可視セルの選択で抽出し、選択した部分はコピーできるのですが、
ペーストがうまくいきません。ペーストすると隙間なく上からペーストされます。
つまり選択外の間のセルを保持したままペーストしたいのですがこれは可能でしょうか?
A B
あ あ
い
あ あ
あ あ
↑のように「あ」を抽出してB列に同じ列でペーストしたいのですが
A B
あ あ
い あ
あ あ
あ
のように隙間を埋めてしまってペーストしてしまうのです。
うまく伝わりますでしょうか・・・。
宜しくお願い致します。
>>401 間埋まるのがまずいなら、いったん丸ごとコピーして、
「あ」以外を抽出→選択→delete押す→フィルタ解除
で「あ」だけ残るんでない?
>>401 B列に
=IF(A1="あ",A1,"")
<402
<403
ありがとうございます。やはり一手間掛けなければいけないようですね。
しかしながら、解決しました!
一度消してからという発想が無かったので目からウロコでした。
とても楽な方法で行うことができました。
IF文でもできました!オートフィルで下までのばすと入力した部分が空白に置き換わって
しまいましたが先にIF文で埋めてから空白部分の入力で解決です。
if文ですと作業量も少なくできました、本当にありがとうございます。
>>365 難しいな
ある程度は構想出来るが、入室が連続でなった後に退室があったりと
記録わすれを考えるといつまでたっても終わらん
一週間ごとの合計はあいてる行に=日付セルで書式をaにした後、ピボットなり集計なりで
すぐにできると思う
>>407 別に>407が無理でも>400@質問者が
>ざっと見た限りなんだかいけそうな気がします。
だから問題ない。
わからない奴にはわからなくて良いと思う。
まぁそうだな
本来、丸投げするトコじゃないんだから、
別にコードが最適じゃなくても、間違ってても、質問者にヒントが伝われば十分なわけで。
つまり、馬鹿が動かない的外れなマクロ書いても、偉そうに上から目線でいられるってわけか。
>>411 前提として、390とかみたいに、「何だコイツ」 と感じた回答者はレスしないだろうから、
後は、当事者(自分の好きなように訊きたいヤツ、答えたいヤツ)同士で仲良くやってよ、
で済む話かと。
>>412 おーい、画像に注意だ。 個人情報を晒してないか? よく確認しろ。分かってるならいいけど。
>>392-393 ちょっと試してみた
そのままだと結果が違ってくるぞ
@ラストに入室で終わる場合のフォローがない
Aiループが終えた後、jループに入る前にE2、E3の初期化がされてない
B一週間のスパンで動いてない
@は iループ終了後、E1が+で終わってる場合E2を引く
で解決
Aこれはjループの頭にE2=0 E3=0でおk
Bは>382のWeekday関数で曜日を1〜7が使いやすいかな
現在行の曜日 < 一行前の曜日 の条件でiループexit Forでおk
>>414 念のために架空の名前なので
大丈夫です。
>>412 >以前にグラフの部分を直接変えている人がいたので、
そんなこと出来るのか?
つか出来てしまって良いのか?
範囲@@〜@@のグラフプロットさせてるのに、
結果が範囲の数値と違うなんて事が。
上から図を重ねればいいよ
と教えたら本当にやってた人がいてびっくり
普通にプロットエリアのマーカー引っ張ればいいだけだろ
シートの値は連動して変わる
>>417-419 レスありがとうございます。
結論として、ノートに入っていたバージョンの古いExcel(2002?かな)で普通に引っ張ればできました!
逆に最新版のExcel(試用版)では単純に引っ張っても動きませんでしたが、
恐らく新しいバージョンなので何かしら出来る方法があるとは思います。
421 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 17:02:18
こんにちは
2008/01/01 12:00:00 という文字が1つのセルに入っているのですが
2008/01/01 12:00:00
2008/01/02 12:00:00
2008/01/03 12:00:00
…
というふうに、文字列の途中の部分を連番にさせたいときはどうしたらいいのでしょうか?
ふつうにセルをドラッグすると、
2008/01/01 12:00:00
2008/01/01 12:00:01
2008/01/01 12:00:02 となってしまいます…
>>415 Bは質問者がいいアイデア持ってるから任せてたんだが、せっかくだからついでに。
F列にWeekday関数(A列)を持ってきたとして
Private Sub CommandButton1_Click()
For j = 1 To 100
a = 0
b = 0
aaa = 0
bbb = 0
Range("e1") = "-"
Range("e2") = "" '■修正点A
Range("e3") = "" '■修正点A
For i = 2 To 100
If Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "入室" And Range("e1") = "-" Then
aaa = aaa + Cells(i, 2)
Range("e2") = Cells(i, 2)
Range("e1") = "+"
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "退室" And Range("e1") = "-" Then
bbb = bbb + 1 / 24 / 60 * 10
Range("e3") = Cells(i, 2)
Range("e1") = "-"
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "入室" And Range("e1") = "+" Then
aaa = aaa - Range("e2")
aaa = aaa + 1 / 24 / 60 * 10
aaa = aaa + Cells(i, 2)
Range("e2") = Cells(i, 2)
Range("e1") = "+"
ElseIf Cells(i, 3) = Cells(j, 10) And Cells(i, 4) = "退室" And Range("e1") = "+" Then
bbb = bbb + Cells(i, 2)
Range("e3") = Cells(i, 2)
Range("e1") = "-"
End If
If Cells(i, 6).Value < Cells(i, 6).Offset(-1, 0).Value Then '■修正点B
Exit For '■修正点B
End If '■修正点B
Next i
If Range("e1") = "+" Then '■修正点@
aaa = aaa - Range("e2") '■修正点@
aaa = aaa + 1 / 24 / 60 * 10 '■修正点@
End If '■修正点@
ccc = bbb - aaa
Cells(j, 10 + 1) = Format(ccc, "hh:mm:ss")
If ccc > 1 Then
Cells(j, 10 + 2) = "居座りすぎ"
End If
Next j
End Sub
あぁ、逆かぁ、日をずらしたいんだね。
つか>421
オートフィルって普通2セル選択してから引くもんじゃね?
例えば
2008/01/01 12:00:00 から
2008/01/01 12:00:00
2008/01/02 12:00:00
2008/01/03 12:00:00
…
このようにしたいばあい、
2008/01/01 12:00:00 のセルのみを引っ張るのじゃなくて
2008/01/02 12:00:00
この二つ両方を選択して引っ張るとうまくいくと主うよ
426 :
155:2008/01/29(火) 17:14:05
>>421 Excel2000 でドラッグするとこうなるな。コピー元のセルは1つでもおkだったよ。
2008/1/1 12:00
2008/1/2 12:00
2008/1/3 12:00
セルの書式設定は、セルに入力した時点で自動で日付になる。
つか、どうやっても1分刻みにできないんだがw
427 :
426:2008/01/29(火) 17:16:18
すまん、上の名前欄のレス番はゴミだ・・・。
>>426 ・・・
またか・・・
別に>426が無理でも質問者が出来れば問題ない。
まぁせっかくだから言うけど、
>どうやっても1分刻みにできないんだがw
2セル選択してから引け。
二セル洗濯して引くものを、選択しなくても出来ると言い張って、でも
>>どうやっても1分刻みにできないんだがw
なんじゃそりゃ。
セルの書式→文字列 で再現した。 421は、多分どっかからセルごとコピーしたんだろう。
AN列の3-543行目について、論理値falseがあれば
メッセージボックスを出して終了、
他の値ならば続行という処理をしたいのですが、
AN20に論理値FALSEと入っていても次の行へと処理が進んでいってしまいます
(AN20には=a1=b1という式があり、A1には「佐藤」B1には「山田」と入ってます)
どのようにコードを記述すればよろしいでしょうか?
Option Explicit
Dim i As Long
Private Sub CommandButton1_Click()
For i = 3 To 543
Range("an" & i).Select
If ActiveCell.Formula = False Then
MsgBox i & "行目が変です"
Exit Sub
Else
i = i + 1
End If
Next
End Sub
>>430 Option Explicit
Dim i As Long
Private Sub CommandButton1_Click()
For i = 3 To 543
Range("an" & i).Select
If ActiveCell = "False" Then
MsgBox i & "行目が変です"
Exit Sub
End If
Next i
End Sub
これじゃダメ?
>>424 >422-423だと最初の一週間、いや最初が月曜から始まってないなら、下手すりゃ
1日分の集計しか取れない
二週目以降の集計も出来ない
'■修正点Bはいまいち
>>431 ありがとうございます!
よければ、その辺り解説してるページとかないでしょうか?
>>432 お前質問者だろ。
もう自分でやれ。って言おうとしたけど暇だし何か考えてみるわ。
>>430 普通にfor nextは
i = i+1 なんて要らないんじゃないか?
勝手に3から543まで繰り返してくれるぞ
あと、もしそのマクロでセレクトする必要が無いなら、
Range("an" & i).Select
If ActiveCell.Formula = False Then
↓
If Range("an" & i) = "false" then
のほうが早いと思うよ。
>>421です
自己解決というか、苦肉の策だったんですけど
新規ファイルを作成して、ひとつのセルの中に入っていた
2008/01/01 12:00:00
を、
2008/01/|01| 12:00:00
の3セルに分けて、日にちのセルだけオートフィルで増やし、メモ帳に貼り付けてtab削除→
元書類にもどす、で できました。
ちょっと手間ですw
>>434 ご指摘ありがとうございます
i=i+1がいるのはdoloopなのですね
>>435 高貴すぎるぞ、その苦肉の策。
まぁ出来てよかった。
自分でやれば理解が進むし、
手間を感じれば感じるほど、次の方法を模索する力が生まれるってもんだ。
おめでとう。
>>421 の後半部分に逆にならないんだが・・
そのセルの中身がどうなっているのか逆に知りたいぜ
>>433 >>431じゃないけど
Sub test001()
MsgBox Range("an20").Value
MsgBox Range("an20").Formula
End Sub
こういうことだよ。
>>438 最初の値
)↓こう逝くために、エクセルがわざわざお前らの思考読み取って
次の値 エスパーするとでも思ってんのか?
例えばAさんは最初の値から3飛ばしでオートフィルをかけたい
Bさんは5飛ばしでかけたい。
そんなものエクセルが勝手に判断してAさんは3だろうな、Bは5〜8くらいだろうな
ってな感じに引くと思ってんのか?マジで。
1時間おきに時間を引きたい人、一分おきに引きたい人、色々居ても対応できる
それがオートフィルのメリットだろ。
そんなもの次の値を指定して初めてエクセルはその幅でオートフィルかけるんだよ
オートフィルは最初の値と次の値を選択してからフィルドラッグ
これはテクでもなんでもなく、オートフィルの普通の使い方だぞ。
>>440 いや、だからね、そうすると 421が、自分でこの2セルをドラッグしておいて、
2008/01/01 12:00:00
2008/01/01 12:00:01
”日付の連番にならない!” とバカな質問したことになるだろうが。
すぐ喧嘩腰だな
安いプライドだ
443 :
441:2008/01/29(火) 18:01:59
>>438 ちなみに、セルの書式を文字列にしとくと再現する。
多分、421はどっかからセルごとデータをコピーしたのかも。ただ、435の対応が理解不能w
>>441 >435を見るに、2セル選択してのフィルドラッグは使ってないだろ。
質問時はなおのこと。
>>443 >435は435でまた何かの糧になると思う。
445 :
441:2008/01/29(火) 18:06:27
>>444 >>435を見るに、2セル選択してのフィルドラッグは使ってないだろ。
あのさ、流れを読みながら会話してくれるか? 会話になってないのが自分でも分かるだろ。
446 :
438:2008/01/29(火) 18:06:34
>>443 そういうことか!
ありがとう、スッキリ解決したぜ
>>439 なるほど、msgboxに一度出力してみると非常に分かりやすいですね
ありがとうございます
448 :
365:2008/01/29(火) 18:11:34
こんばんは。
いや〜、いろいろありましたが、結局
>>395さんのアイデアを元に、いろいろといじくって
いたらできました。
さっき上司に提出してきたところです。
みなさんお世話になりました。
以降、名無しに戻ります。
名無しに、名無しになって、あの大きな空を吹きわたっています。
>>448 ちなみに>422-423
くらいまで煮詰まって、>432の突っ込み入って考えてたところなんだけど、
一週間ごとの集計どうしてんの?
と思ったけどいいや、解決したんだからな。
>>447 ただ、 If Range("an" & i) = "false" は、暗黙の型変換が起きてるので注意。
メッセージボックスに出しても、同様に文字列型に変換されている。今後注意が必要だと思う。
If Range("an" & i) = False And Len(Range("an" & i).Value) > 0 Then
とすると、文字列を見ずに同じ動きをする。 と言って、あえて直す意味も無いけどね。
>344-355です。
344-355を回避するために、
If Save_File <> "False" Then以降をこのようにしました
Application.DisplayAlerts = False
If Dir(Save_File) <> "" Then
If MsgBox("既存ファイルを置き換えますか?", vbYesNo, "確認") _
= vbYes Then
SaveAs (Save_File)
Else
End If
Else
SaveAs (Save_File)
End If
これでいけたと思って>355で〆たのですが、
保存ダイアログが表示された時点でキャンセルを押すと、
実行時エラー13 型が一致しません
と If Save_File <> "False" Then のラインで止まってしまいます。
保存する段階を分けると
@ダイアログが開く→キャンセル
Aダイアログが開く→既存ファイル名で保存→上書きする
B →上書きしない
Cダイアログが開く→新しい名前で保存する
この4つのケースだと思いますが、>344-345の内容だとBでエラーとなり
↑の新しいマクロだとBでは出なくなったものの、@でエラーとなります。
何か良い解決策は無いでしょうか?
>>452 ×>344-355です。
○>344-345です。
■以前のマクロ----------------------------
>On Error GoTo ERR1
>If Save_File <> "False" Then
>ActiveWorkbook.SaveAs Filename:=Save_File
>End If
■現在ののマクロ----------------------------
On Error GoTo ERR1
Application.DisplayAlerts = False
If Dir(Save_File) <> "" Then
If MsgBox("既存ファイルを置き換えますか?", vbYesNo, "確認") _
= vbYes Then
SaveAs (Save_File)
Else
End If
Else
SaveAs (Save_File)
End If
わかりづらいので並べました。
とりあえずやりたいことは>344のとおりなのですが、
エラーが回避できずにいます。回避する方法があればお願いします。
>>452 これも間違えてました。ボロボロですみません
>と If Save_File <> "False" Then のラインで止まってしまいます。
↓
If Dir(Save_File) <> "" Then
>>454 あのさ、質問文が長いばかりで要領を得なさすぎ。
If Dir(Save_File) <> "" Then でエラーが出るんなら、普通は引数に何かあると考えるだろ?
でも、それだと Save_File に何が入ってるか全然わかんないんだけど。
ロジックも、質問も、要件についてもっと論理的に考えてみて。
自己解決しました。ありがとうございました。
457 :
455:2008/01/29(火) 19:20:51
>>454 文句ばかりじゃ申し訳ない。一応予測で書いてみるけど、
上のを見る限り、>Dim Save_File, Save_Filename As String で
Save_File がVariant 扱いになってるから、これでDirの引数として論理値(false)が渡ってる。
回答もせず薀蓄垂れるだけ。
挙句の果てには自己解決宣言してるにもかかわらず、おせっかい。
自己満も大概に。
459 :
455:2008/01/29(火) 19:27:00
>>458 まぁそう皮肉を言うなよ。 人のすることにケチ付けたくて仕方ないのはオマイと一緒なんだよ。
460 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 19:35:41
Excel2003を使っているのですが
2008/2/1(金)
2008/2/2(土)
・・
といった感じで曜日の入った日付を連番で入力したいのですが
どうすれば良いのでしょうか?
>>460 値として(曜日)を抜いて、書式設定で(aaa)加えるとかダメ?
462 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 19:54:11
>>454 全部は読んでないけど、
SaveAsのオブジェクト省略してるのが原因って事はない?
464 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 21:07:13
セル内の数字をマクロで非表示にするにはどのようなコードになるのでしょうか?
Range("A12").visible=falseでは駄目でした・・・
>>464 表示形式を;;にすりゃいい。
文字列も非表示なら;;;だ
コードは自動記録
質問を間違えていました。
マクロで非表示や表示をコマンドボタンを押すことによって繰り返したいのです。
お願いします。
>>466 こんなんでいいんじゃない? 操作対象や条件は工夫してね。
If Range("A1").NumberFormatLocal = ";;" Then
Range("A1").NumberFormatLocal = "G/標準"
Else
Range("A1").NumberFormatLocal = ";;"
End If
>>486 マクロで表示形式を切り替えりゃいいだろ?
470 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 22:34:10
すみませんが誰かそろそろ
>>381 に答えて下さる方いらっしゃいませんか?
方法がわかる方おられませんか?
もしかしたら不可能なことなんでしょうか?
どなたかどうかよろしくお願いします。
オートシェイプは無理なんじゃないかな。
いや知らんけどな。ワークシートマクロのイベントにはそれらしきものが無いよな
474 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 23:28:09
オートシェイプはめんどくさかった気がする
ググったけどオートシェイプは無理なんじゃない?
コントロールかフォーム使えってのが見つかっただけ。
476 :
名無しさん@そうだ選挙にいこう:2008/01/29(火) 23:53:33
>>473 それはコマンドバーコントロールにしかつかえませんのですわ。
477 :
名無しさん@そうだ選挙にいこう:2008/01/30(水) 00:03:00
>>474 めんどくさくても何かてがかりがほしいんです。参考文献かなにかないですかね?
>>475 コントロールはデザインモードでしか大きさ変更できなかったりするので…
今回のは、ボタンに連結したマクロからaddshapeでmsoレクタングルとかを追加して
それをユーザーが選択して大きさを変え、
さらにその変更した大きさのプロパティ値をバックして指定したセルに表示させたいのです。
なんだかあまりに考えてることがエクセルを越えてるんでしょうか?
478 :
名無しさん@そうだ選挙にいこう:2008/01/30(水) 01:03:48
【1 OSの種類 .】 WinXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Exsel グラフ
ちょっとしたアンケートをとりました。
あるお店について、1問目で知っているか否かを聞き、
2問目では、問1で知らないと答えた人にだけ、
お店の詳細を教えた上で
行きたくなったかどうかを聞きました。
問1
知ってる 20
知らない 15
合計 35
問2(問1で知らないと答えた15名のみ)
行ってみたい 12
興味無い 3
特に、問2の「行ってみたい」という回答を強調できるような
効果的なグラフの作り方を教えてください。
はじめは補助円付き円グラフで表現できるかと思っていたのですが
あのグラフって単に数値の小さい部分を拡大表示するだけなんですか?
大きい円グラフが3等分されてしまい、うまくいきません。
問1と問2で別々に作るしかないのかなー
知ってる 20
行ってみたい 12
興味無い 3
として、データ系列の書式設定のオプションでどうにかする。
グラフのスムージングってどんなアルゴリズム使ってるの?
スプライン?
>>478 分割円グラフを作って、グラフを選択、ドラッグすると離したりくっつけたりできる
そして一つの要素をクリックして、ドラッグすると一個だけ切り離せして移動できる
・・分かりにくいな
A1-A3に東京、大阪、名古屋(なんでもいいけど)
B1-B3に1,2,3と入れて下のマクロを実行してみ
sub あ()
Charts.Add
ActiveChart.ChartType = xl3DPieExploded
ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:B3"), PlotBy:= _
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
ActiveChart.HasTitle = False
ActiveChart.SeriesCollection(1).Select
Selection.Explosion = 0
ActiveChart.SeriesCollection(1).Points(2).Select
Selection.Explosion = 41
End Sub
482 :
名無しさん@そうだ選挙にいこう:2008/01/30(水) 10:59:38
【1 OSの種類 .】 WinXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 少し(初心者)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 入力 格納
少し前にもお世話になりましたが、またお世話になります。
ユーザーフォームで(セルへの直接の入力でも)担当者ごとに複数の情報を入力します。
それを担当者で識別して担当者ごとのワークシートへ格納するようなものを作成したのですが、
なんともうまくまとめられません・・・。
担当者ごとのシートへの格納とそれとは別に全て担当者の情報が入っているシートの
両方に情報を入れたいのです。
A B C D
佐藤 1月6日 みかん りんご
伊藤 1月9日 メロン みかん
佐藤 1月10日 りんご ぶどう
とすべて繋がっているシートと
A B C D
佐藤 1月6日 みかん りんご
佐藤 1月10日 りんご ぶどう
と佐藤シートにも自動的に振り分けられるように。
複数条件を入力するユーザーフォームからセルへの入力は大丈夫なのですが、
振り分けがうまくいきません(というか思いつかない)。
関数、VBAどちらでも何か良い方法がありましたら、ご助言の程お願い致します。
全ての担当者が入ってるシートに通し番号の列を挿入して、
vlookup使うのが早いと思う
仮に全てのデータが入ってるシートのA列を番号の列とし、A1から1、A2が2・・と入力
そのシートをまるごとコピーしてA列と2行目以降をクリア、シート名は担当者名かな
B2に
=IF(VLOOKUP(全て!$A2,全て!$A$1:$E$100,2)="佐藤",VLOOKUP(全て!$A2,全て!$A$1:$E$100,2),"")
B3もそんな感じで入力して、下までオートフィル
B列を名前でオートフィルタすればいと思う
新しいシートはマクロで作れるけど、その辺は割愛
シート名を関数で取得できたら楽なんだがなぁ
>>482 一度ピボットテーブルで担当者別に集計します。
その集計表で佐藤さんの集計値をダブルクリックすれば佐藤さんだけの
明細データが別のシートに出てきますよ。
1 OSの種類 .】 Windows vista/xp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 リンク 削除 セル
セル内のリンクを切りたいのですが、
例えば「=A1」のようなものは残して、
「=SUM(A1:A2)」のような関数の入ったセルだけを消すにはどうすればいいのでしょうか?
>>485 リンク??
何を残して、何を消したいのか、よくわからん。
SUM関数が入ったセルだけを消したいなら編集→置換で
検索する文字列 「*SUM(*」
置換後の文字列 「」
にする。
>>485 Ctrl+Fで"("を「すべて検索」して
下に出てくる検索結果でCtrl+Aして検索窓閉じてDelete押せばいいんじゃね?
ファイルを開く、あるいは保存をしようとすると
画面が変なかんじの表示になり(きちんと通常の画面にならずあちこち虫食い
状態にみえる)、エラーメッセージがでてしまいます。
「メモリ不足で開けない」というようなメッセージです。
ファイルサイズ:5M
メモリ:734M
ドライブの空き容量は10G以上ある
仮想メモリ?を330程度だったのを500まで増やしてみたりしても一向に
解決しません。
つい最近急にこういう状態になったのですが、どうしたら直りますか?
オプション→計算方法にある
「表示桁数で計算する」はデフォルトでオンになっているのでしょうか?
>>488 とりあえず再インストールをしてみたほうがいいかと
解決しなきゃエラーメッセージ全文のせないとわからんよ
491 :
名無しさん@そうだ選挙にいこう:2008/01/30(水) 20:00:35
こんにちは
HTMLを含む文書をエクセルに貼り付けてコードを編集したいと思ってます。
改行をtabに変換したソースを貼り付けると文字としてではなくHTML文書(リンクや画像)が現れてしまいます;;;;
単なる文字としてペーストどこで設定したらよいのれしょうか??
492 :
名無しさん@そうだ選挙にいこう:2008/01/30(水) 20:13:35
エクセル‐HTMLでぐぐったら 解決できました(^_^;)
すんません
493 :
名無しさん@そうだ選挙にいこう:2008/01/30(水) 21:10:10
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
人の名前とその横に金額が書かれている10枚くらいのシートがあるのですが
全てのシートから同じ名前の人の金額だけを抜き出して合計したものを
一番最後のシートに表示させるにはどうすればいいでしょうか?
495 :
名無しさん@そうだ選挙にいこう:2008/01/30(水) 23:08:02
やった事がある人は解ると思いますが、
VBAを使って複数のジョブに分かれた印刷を行うと、
印刷の合間に数十秒の時間が掛かる事があります。
これはどうにかして回避出来ないでしょうか?
>>486 要するに関数が入っているものは消して、関数が入っていない「=A1」などは残したいのです。
>>487 明日やってみます。ありがとうございます。
>>482 挿入 − 名前 − 定義
名前に 「シート名」
参照範囲に =REPLACE(CELL("filename",!$A$1),1,FIND("]",CELL("filename",!$A$1)),"")
名前に 「行番号」
参照範囲に =SMALL(IF(全て!$A$1:$A$100=シート名,ROW(!$A$1:$A$100),""),ROW())
「佐藤」シート
A1=IF(COUNTIF(全て!$A:$A,シート名)<ROW(),"",INDEX(全て!A:A,行番号))
右、下へ必要数コピー
その後は「佐藤」シートをコピーしてシート名を変えてください。
でも、折角ユーザーフォームを使っているのならセットの時に他のシートにもデータが
入力されるようにした方がいいかもしれませんね。
498 :
名無しさん@そうだ選挙にいこう:2008/01/31(木) 00:32:27
【1 OSの種類 .】 WindowsXp
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
おしえてください。
B列とC列、どちらかに1または空欄が入っている表があります(1はダブらない)
これを1列にまとめるにはどうすればよいですか?
D列に、「となりのBかCに1があったら1を返す」というような式を入れる方法でもいいのですが
IFでやろうとしたら式が違うといわれました。
=IF(OR(A1=1,B1=1),1,"")
501 :
498:2008/01/31(木) 03:43:24
>499
ありがとうございます!
実はこのあと、3列、4列…で同じ操作をしたかったのですが
それでもできたので助かりました!
>500
そ、そんなシンプルな式があったとは・・・
ありがとうございます。
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
教えて下さい。
エクセルで請求書を作りました。
プリントアウトをすると、単価を打ち込んでない行まで「0」と印字されてしまいます。
「0」と印字させないようにするにはどうしたらよいですか?
宜しくお願い致します。
>>502 いろいろあります。
0の時文字色を背景色にする。
IFで、0の時””にする等。
504 :
名無しさん@そうだ選挙にいこう:2008/01/31(木) 12:05:24
>>502 他にも数値の書式設定で
#,###
あるいは
#,##0;-#,##0;
オプション−表示で「0表示」のチェックを外す
506 :
502:2008/01/31(木) 12:30:26
>498
B列コピー、C列で加算貼り付け
or
前提が確実なら
=IF(B1+C1,1,"")
508 :
482:2008/01/31(木) 15:47:48
<483,484,497
ありがとうございます!
ネストするような式はすごく苦手で・・・。
うまくいけそうです。
本当にありがとうございます!!
509 :
名無しさん@そうだ選挙にいこう:2008/01/31(木) 20:11:50
【1 OSの種類 .】 WinXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 使えない
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 連続したセル 連休計算 countif offest weekday
勤務表を作ってます
4月 A B C 5月 A B C
4|金|AB |出|出|休 4|日|みどりの日|休|休|休
5|土| C|休|休|出 5|月|こどもの日|休|休|休
6|日| |休|休|休 6|火|振替休日 |休|休|休
7|月|A C|出|休|出 7|水|A B C|出|出|出
8|火|ABC|出|出|出
A B C
4月の4連休 | | | |
4月の3連休 | | | |
4月の土曜出勤| | | |
こんな感じです。
出or休はif,match,iserrorを使ってます。
4月の3連休はA何回、B何回、C何回と数えたいのですが、
どうにもうまくいきません。
また、たとえば4/29,30,5/1と連休した場合は
「5月の3連休を1回」として数えたいのですが、
そういったものはうまくいきますでしょうか。
さらに、土曜出勤の回数も数えたいのです。
恐縮ですが教えていただけたら幸いに存じます。
エクセル2007でグラフを書いているのですが、
X軸やY軸のラベルを変更しようとするとたまに入力が変になります。
普通なら、「へんかん」→「変換」と漢字に変換できるのですが、
稀に、「へんかん」→「へんかんへんかんへんかん変換変換」のように
文字入力がわけのわからないことになってしまいます。
軸のラベル以外の場所ではこのようなことは起こりませんし、
他のソフトで文字入力する時にも起こったことはありません。
さらに修正しようと思ってDelete押すと、たいていカーソルの前後が消えたりもします。
BackSpaceは普通に使えますが、
また何か文字を入力すると、「もじ」→「もじもじ文字文字」のようになってしまいます。
Excel以外でこのようなことは起こらないのですが、
使い方に問題があるのか、ソフトの設定などに問題があるのか、運が悪いのか・・・
対策などないでしょうか?
>>509 >4月の3連休はA何回、B何回、C何回と数えたいのですが、
これ意味が分からない。何をどう数えるのか、どう上手くできないのか。
>「5月の3連休を1回」として数えたいのですが、
COUNTIF と IF 文の連携でできると思う。つまり、指定範囲の休みが3回なら1をカウントする。
>>509 うまく説明するかサンプルとなるシートをうpするかどっちかだな。
513 :
509:2008/01/31(木) 21:31:44
失礼しました
日付 |曜日|A氏|B氏|C氏
4月4日|金 |出 |出 |休
4月5日|土 |休 |休 |出
4月6日|日 |休 |休 |休
4月7日|月 |出 |休 |出
4月8日|火 |出 |出 |出
|A氏|B氏|C氏|
4月の3連休| |☆ | |
4月5日から7日までBさんが「休」3連続ですよね
それを「3連休1回」と判定して☆のセルに「1」と入れたいのです。
>>513 C列からA氏のデータが入ってるとして
=IF(ISERROR(FIND("休休休",C2&C3&C4&C5&C6)),"","1")
>>514 おもしろい方法だけど実際には1か月、1年単位で使うだろうし、GWは4月と5月またぐし、結構面倒だ
休休休休休休なら3連休2回にするの?
祝日や定休日はをはさんだ時はどうするの?
期間は最大いつからいつまでで、どうやって指定するの?
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
エクセル VBA セルに入力 下に下がる
excel VBA セルに入力 offset
excel VBA セルに入力 offset if
今課題で、入力支援ソフトを作っているのですが、
チェックボックスをチェックしたときに、
チェックボックス1にチェックが入った場合はシート1
チェックボックス12にチェックが入った場合は、シート12に
名前が入るようになっています。
スピンボタンで、1から番号が指定されているため、
番号1の人が、チェックボックス1
番号2の人が、チェックボックス2
番号3の人が、チェックボックス1
にチェックを入れた場合、 シート1にでる名前が
番号1
空白セル
番号3 となってしまいます。
if文で、そのセルに入力がある場合は、 一つ下がる。
そのセルに入力が無い場合は、
そのセルに入力。 としたいのですが、
移動する「そのセル」はどのように 指定したらいいのでしょう?
説明わかりにくかったらすみません。 お願いします。
518 :
498:2008/02/01(金) 01:49:42
>>507 加算貼り付けなんてのがあるんですねー
これは後々役に立ちそう☆
ありがとうございました^^
>>517 すみません、出来そうな気がしてきました。
失礼しました。
>>490 再インストールは面倒だからまだやっとらんが、
メッセージは「メモリ不足です。完全に表示できません。」
521 :
名無しさん@そうだ選挙にいこう:2008/02/01(金) 09:40:52
よろしくお願いします
住所録のデータが約1000件あってちょっと色々並び替えをしたりしたいんですが
後で元の順番に戻したいので1〜1000まで番号を入れておきたいのですが
一発で入力できる方法はありますでしょうか?
具体的にはA1に1、A501に501、A1000に1000、のように一気に1000まで入れてしまいたいです
>>521 オートフィル ⇒ コピー ⇒ (同じセルに)値のみ貼り付け じゃダメ?
523 :
522:2008/02/01(金) 09:57:12
>>521 スマン、オートフィルだけで良いな・・・
Excel 2002(Windows XPで使用)の文書を
PDFファイルとして保存することは可能でしょうか?
検索したところ「ファイル」→「PDFファイルの作成」が
できるバージョンもあるようですが、
2002ではこのコマンドが使えないようです。
よろしくお願いします。
525 :
d:2008/02/01(金) 13:18:18
>>521 A1に1、A2に2を入力し、A2セルの右下端にマウスポインタを持って行き
黒十字になったところでダブルクリック。^^
526 :
d:2008/02/01(金) 13:20:11
>>525 A1:A2を選択してダブルクリックです。^^
527 :
名無しさん@そうだ選挙にいこう:2008/02/01(金) 13:38:12
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】関数 ワイルドカード 無効
表1
A* (関数)
AB* (関数)
表2
A* 1
ABC* 3
上のような二つのテーブルがある場合、表1に表2の列Bの値を
反映させたい。
(関数) に=vlookup(A1,表2!A1:B2,2,0) などと入力した場合、
文字列に* が入っているため、表1は
表1
A* 1
AB* 3
となってしまいます。* も文字列として認識されるような方法があるでしょうか?
表1の結果はこうなってほしいのですが。。
表1
A* 1
AB* #N/A
528 :
名無しさん@そうだ選挙にいこう:2008/02/01(金) 13:56:50
>>527 ab~*
と*の前にチルダを付ければいいよ
あるところからあるところまでの偶数列だけの合計の出し方(奇数列だけの合計のい出し方)ってどうすればいいのでしょうか?
=SUM(A3,C3,E3)というのを列が増えても簡単に追加できるようにしたい(Iまで列ができたらG3,I3も追加できるような)のです
お教えくださいますようお願いいたします
>>531 A3:I3にデータが入ってる(入る予定がある)として
=SUMPRODUCT((A3:L3)*(MOD(COLUMN(A3:L3),2)=0))
これが偶数列の合計
奇数列は最後の0を1にすればいい
あと日本語をもう少し勉強したほうがいい
534 :
名無しさん@そうだ選挙にいこう:2008/02/01(金) 14:49:06
531の文章そんなにおかしいか?
たかだか数式一つ教えたくらいで思い上がってるな532。
535 :
532:2008/02/01(金) 14:49:37
俺もI3とL3間違ってるな
人のこと言えねえや
こんにちは。エクセル2002を使用しています。
ノンブルを複数のシートにまたがって連番で印刷することは可能でしょうか。
また、ノンブルを印刷しないページを設定することは可能でしょうか。
よろしくお願いします!
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ヘルプ 検索履歴
Excel2007でヘルプの検索を行うと、検索履歴が残ってしまいます。
これを削除したいのですが、Deleteキーでも消去できません。
何か簡単な方法がありましたら教えてください。
宜しくお願い致します。
>>536 ノンブルってページ番号?
ページが固定なら、ファイル→ページ設定→ページ タブ→先頭ページ数 で調整可。
同じく、→ページ設定→ヘッダ/フッタ タブ→ヘッダー(フッター)の編集 で設定可能。
ページが可変なら、VBAを組まないとムリだと思われ。
>>534 敬語の使い方がおかしい。
「お教えくださいますようお願いいたします」の部分。
540 :
538:2008/02/01(金) 15:59:17
>>536 言い忘れた、複数ワークシートを同時に選択して印刷を掛けると、ページ番号は連番になるよ。
541 :
名無しさん@そうだ選挙にいこう:2008/02/01(金) 16:24:34
【1 OSの種類 .】 WinXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Excel グラフ
A列C列E列G列のように1列おきのデータでグラフを描いています。
行数が増えたときにグラフ上で右クリ、データの選択をして
グラフデータの範囲 =XX!$A$2:$A$10,XX!$C$2:$C$10,XX!$C$2:$C$10, (続いてる)
の10という数字を全部20に書き換えたいのです。
ここで文字数が長くて表示されてない(続いてる)部分にカーソル移動したいのですが
カーソルが元の表の方に有効になってしまいデータ範囲がめちゃくちゃになります。
Excel2003では普通にできていたことなのにExcel2007ではできずどうしたらいいのですか
【1 OSの種類 .】 WinXP SP2
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 コピーしたセルを挿入
「コピーしたセルを挿入」を1度選ぶと、右クリックメニューから「コピーしたセルを挿入」が消えてしまいます。
「コピー」と「コピーしたセルを挿入」を交互に繰り返すのが面倒なのですが、
「コピーしたセルを挿入」だけを続けて実行する方法があったら教えてください。
>>543 【5 検索キーワード 】 コピーしたセルを挿入 連続
545 :
524:2008/02/01(金) 18:18:08
>>542 ありがとうございます。。。これは伏せ字??
とか書き込む直前に検索したら、れっきとした略称だったんですね。
OOoもはじめて知りましたので、やってみます。
改めてありがとうございます!
Excel2002です。
セルに色をつけながら作業していたのですが、
気づくと使っていた色のひとつ(ピンク)がグレーになっていました。
すべてのシートで、ピンクがグレーに変わっており、
色のパレット上でもピンクの位置がグレーになり戻せません。
戻す方法を教えてください。
547 :
543:2008/02/01(金) 18:31:24
>>544 ぐぐってみました。
一番目に出てきた方法は、ショートカットキーでコピーの手間を減らすだけでした。
二番目は、Ctrl+Yを押しても何も起きません。Excelのバージョンが違うからでしょうか。
三番目は、メニューから挿入を選んでもセルという項目が見あたりません。
四番目は、離れたセルにはコピーできない方法でした。
ようするに、自分の希望するような機能はないということでしょうか?
>>546 1つのブック内で使える色数は56色までです。
もっとたくさんの色を使って細かく色分けしたいならExcel2007に乗り換えるしかありません。
>>544 検索結果の4番目がトップに来るだけですが、
550 :
546:2008/02/01(金) 19:04:59
>>548 色は7~8色しか使っていません。
さっきまで使えていたピンクがグレーになってしまいましたので、
元に戻したいのですが…
>>546 ツール、オプション、色タブのリセット押せ
>>547 多分ないです。 Ctrl + C ⇒ Ctrl + Shift + ; を続けるしかないと思います。
553 :
546:2008/02/01(金) 19:41:44
>>551 キターそれだ(*゚∀゚)!と思いながらリセットボタンを押してもなおりませんでした。
試しにその色(ピンクだった部分)を色変更してみてからリセットを押すと
グレーに戻る始末(つд`;)
554 :
546:2008/02/01(金) 20:01:09
リセットとExcel再起動を繰り返していたらなんだかなおりました!
最下列左から2番目の肌色のようなピンクお気に入りなのでうれすいです。
おさわがせしました。ありがとうー!
色変更して、リセット押さなきゃいいだろ
>>554 どうでもいいけど俺もその色、好きだぜ
目に優しい気がする・・気のせいだろうけど
【1 OSの種類 .】 WinXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Excel グラフ
A1セルの「19年1月31日」と表示されているものを
B1セルに19
C1セルに1
D1セルに31
と年、月、日にそれぞれ分けるにはどういう関数を入れたら良いのですか?
YEAR(A1) =MONTH(A1) =DAY(A1)
でいいのかな?
A1が日付データなら
A1 =YEAR(A1)-1988
B1 =MONTH(A1)
C1 =DAY(A1)
A1が文字列なら
A1 =LEFT(A1,2)
B1 =MID(A1,FIND("年",A1)+1,FIND("月",A1)-FIND("年",A1)-1)
C1 =MID(A1,FIND("月",A1)+1,FIND("日",A1)-FIND("月",A1)-1)
562 :
543:2008/02/02(土) 00:14:03
>>552 わかりました。ありがとうございました。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
回転するシャフトの「振れ」の規格が50ミクロンで、Cpkの計算をしたいのですが、
A52に平均値、A53に分散、A54に標準偏差、A55に0.05と入れたら
=(A55-A52)/(3*A54) で良いですか?
それとも、下限規格を0(ゼロ)とした両側規格にするのでしょうか?
また、標準偏差を求める関数があれば教えてください。
>>563 標準偏差はSTDEVP関数で計算できるけど、機械の振動についての質問は機械・工学板へ行った方がいいぞ。
【1 OSの種類】WinXP
【2 Excelのバージョン】Excel2000
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード】Excel
月 週
A 10 30
B 15 10
C 20 15
上のような表があります。(「A,B,C」記入列…A列、「月、週」記入行…1行目)
表を元に、「月」は縦棒、「週」は折れ線の2軸グラフを作りたいです。
A,B,Cと書いてある行は、この先D,E,F…と増えるため、
行を増やす度にグラフに反映されるようにしたいです。
どのようにグラフを作ればよいでしょうか?
>>565 毎週データの範囲を広げるのはイヤな訳?
マクロでしか無理だなぁ
>>566 はい、データを増やす度にグラフを作り直す手間を省きたいのです。
できたら知恵をお貸しください。
途中に挿入すればグラフの範囲を変えることも可能
例だとAとBの間に挿入すれば変わってくれる
最後に追加したいなら・・Cの下に仮にZってデータを入れておいて、
CとZの間に挿入するようにすればいいかな
【1 OSの種類 .】 WindowsVISTA
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA VLOOKUP
みなさんはじめまして。VBAの質問です。
VLOOKUPで検索された行の特定の列のセルの値をコピーして
そのセルに値のみを貼り付けたいのですが、
VBAではどう書けばいいでしょうか?
(コピー対象のセルには数式が入っている)
(例)「A1」に検索対象の「人名」を入力してからの処理となります。
「表(B2:D4)」からB列の「人名」を検索して「B3」に
見つかったとすると、
「B3」の行の中の「C3」「D3」の値のみをコピーして
同じ「C3」「D3」に貼り付けるといった具合です。
「C3」「D3」にはそれぞれ前処理で別の表を参照する
数式が入っていますが以降使用しません。
Excel2003を使っています。
A B C D
01/01 店舗A 1,000 6,000
2,000
3,000
店舗B 2,500 5,300
1,200
1,600
D列にC列の店舗毎の合計を表示したいんですが、行数はまちまちです。
ちまちまSUM()を入れるのではなく、自動的に連続した範囲(空行を区切りとする)を
合計の対象としたいんですが、どうすればよいでしょうか?
>570
つマクロの自動記録
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はじめたばかり
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBA チェックボックス
チェックボックスを二つ用意して
1番をチェックしたら黄色塗りつぶし、 2番をチェックしたら色を元に戻す(塗りつぶしなし)
という風なマクロを(マクロ記録)作成したのですが
1番のチェックをはずしても当然元の色にもどりません。
ラジオボタンなら何の問題もなく作動するのですが
チェックボックスで行いたいと思ってます。
チェックをはずしたらチェックする前の状態に戻るようにするにはどのように記述したらよいでしょうか?
また本来このような使い方はラジオボタンにすべきでチェックボックスを使うべきではないのでしょうか?
印刷後の見やすさなどからチェックボックスにしたいのです。
>>571 データの形式が悪い。
A B C
01/01 店舗A 1,000
01/01 店舗A 2,000
01/01 店舗A 3,000
01/01 店舗B 2,500
01/01 店舗B 1,200
01/01 店舗B 1,600
こんなふうにしてピボットテーブルで一発
>572
表はこんな具合です。
上の表の鈴木さんのスクワットと腕立ての回数は
下の表の日本人のそれを参照しています。
ゴンザレス
人名 スクワット 腕立て
鈴木 3回 5回
ゴンザレス 4回 6回
スクワット 腕立て
日本人 3回 5回
欧米 4回 6回
>572
マクロの自動記録です。
Sub Macros()
Selection.Copy
Columns("B:B").Select
Selection.Find(What:="ゴンザレス", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
Range("C4:D4").Select
Application.CutCopyMode = False
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
End Sub
>>573 チェックボックスがクリックされたらすぐに色を付けるんじゃなくて、
チェックマークが入ったか消えたか判断してから色を付けるようにする。
Private Sub CheckBox1_Click() 'チェックボックスがクリックされた
If CheckBox1.Value = True Then 'チェックマークを調べる
Range("A1").Interior.ColorIndex = 6 'チェックされていたら色を付ける
Else
Range("A1").Interior.ColorIndex = xlNone 'チェックが外れたら色を戻す
End If
End Sub
本当はラジオボタンを使うべきなんだけど、最初はこんなもんでもいいだろう。
チェックボックスをラジオボタンのように使うとか、ラジオボタンのデザインを変えるとか、
いろんな方法があるから、がんばって勉強してね。
>>569 ありがとうございます。
その方法でいってみます。
>>577 大変参考になりました。
これをちょっとづついじくって勉強していきたいと思います。
ありがとうございました
>>571 E2に店舗A
F2に
=SUMIF($B$2:$B$101,E2,$C$2:$C$101)
これでドラッグしても使えるようになるが・・
どっちにしても
>>574のとおり、店舗Aは下までいれていかなきゃいけない
マクロなら簡単にできると思うけど
>>571さんの質問に便乗だけど、
Bセルの3,000までのところにA店舗と自動的に入れるにはどういう方法がありますか?
うちの場合は、店舗じゃなくて日付なんですが。
例えば出納帳で上と同じ日付の場合は空欄になっていて、その空欄にその日が入るようにしたいということです。
例えば
1行目3日
2行目
3行目
4行目4日
5行目
6行目5日
となっている場合に、2行目と3行目に「3日」、5行目に「4日」と表示出来るようにするには。。
582 :
563:2008/02/02(土) 15:53:15
>>564 ありがとうございます。
STDEVPで、作成フォーマットがスッキリしました。
日付の右か左は一行埋めておかないといけないが、
なければ作った後に
3日をクリック、右下の点をダブルクリック
これで4、5、6・・と入っていくので、最後のセルの右下に小さい四角がでる
オートフィルオプションって言うみたいだけど
これでセルのコピーを選択すれば、全て3日に変更される
ただこれは古いバージョンでは使えなかった気がする
2003ならできる
>>583 なるほど。
その技は関数で何か指定出来ないものですかね。
範囲を指定して、空欄には直前の日にちを一発で入れて行ければ便利なのですが。
585 :
d:2008/02/02(土) 16:22:44
>>584 こんなのではどうですか。^^
Sub test2()
Dim RR As Range
Set RR = Range("B:B")
Set RR = Intersect(RR, RR.Worksheet.UsedRange)
Set RR = RR.SpecialCells(xlCellTypeBlanks)
RR.FormulaR1C1 = "=R[-1]C"
RR.Font.Color = vbRed
End Sub
>>584 A2以降のA列に日付が入ってるものとすると、
B2に
=IF(A2="",B1,A2)
の式で後は下にオートフィルで引っ張るとか
その後A列を表示しないにでもすれば可能
1行目から入力する場合は最初だけ日付を入力するか、
もうちょい長い式を作るかだな
>>585-586 dクス
Excelの基礎から応用まで学べるような講習?ないし、DVD教本とかでお奨めは無いですかね〜。
一度勉強が必要なようです。
ググったら特打のEXCEL版があるんですね。これでいっかな。
ソースネクストの製品は全部やめといたほうがいい
おすすめはダイソーで売ってたエクセルの中級者用って奴
100円でも1000円でも、内容は同じ
後はマクロ覚えるか、このスレで聞くか、ぐぐったほうが早い
>>589 まじですか。ダイソーでも売ってるんだ。
ちょっと試しに買ってきます。
>>581 日付を入れたい範囲(すでに入っているセルもまとめて)選択してから
検索する文字列
置換後の文字列 =INDIRECT("R[-1]C",FALSE)
で、すべて置換
ダイソーのってもしかして本だけ?
うーん、ビジュアルに訴えて欲しかったんで。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 使える
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 excel html タグ 無視 貼り付け
数十行の、htmlタグを含むテキスト(要するにソース)を、ただのテキストとして貼り付けたいです。
ふつーにソースを貼り付けると、表示形式をテキストにしててもfontとかtableとかが解釈されてしまいます。
1セルに1行毎貼り付けるとタグを解釈せずに貼り付けられるので
どうにかできるとは思うんですが…
VBAを使っての貼り付けは成功しています。
普通にCtrl+A→Ctrl+C→Ctrl+Vってやりたいだけなんです。
>>591 おっ。なるほど。
でもエクセル2000では置き換えのところに数式を貼り付け出来ないのですね。
なにかマクロ登録かなにかで対策考えます。ありがとうございました。
=INDIRECT("R[-1]C",FALSE) を辞書登録しておけば良いことに気がつきました。回答者の皆さんありがとう。
596 :
名無しさん@そうだ選挙にいこう:2008/02/02(土) 18:25:17
>>570 これは?
Sub Test1()
On Error GoTo Errorhandler
Range("B2:D4").Cells.Find(Worksheets("Sheet1").Range("A1").Value).Offs
et(0, 1).Value = _
Range("B2:D4").Cells.Find(Worksheets("Sheet1").Range("A1").Value).Offs
et(0, 1).Value
Range("B2:D4").Cells.Find(Worksheets("Sheet1").Range("A1").Value).Offs
et(0, 2).Value = _
Range("B2:D4").Cells.Find(Worksheets("Sheet1").Range("A1").Value).Offs
et(0, 2).Value
Exit Sub
Errorhandler:
MsgBox "そんなの関係ない〜"
End Sub
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 NO
【4 VBAでの回答の可否】 NO
【5 検索キーワード 】 挿入
例えば1行目のセルに「A」「B」「D」「F」と入力されているとします。
A列からF列を選択して「あるコマンド」を実行したら「B」と「D」の間に一列挿入され、
「D」と「F」列の間に一列挿入され、その結果、
A列セルにA
B列セルにB
C列セルにC
・
・
・
というように対応するようになる「あるコマンド」は何かありますでしょうか?
>>597 式をコピペできるなら
=MID(CELL("address",A1),2,1)
600 :
599:2008/02/02(土) 19:50:13
>>597 あなたの質問の意図を勘違いしてた。忘れてくれ
>>598-600 出来ないっすか。
例えば1行目のセルに「A」「B」「D」「F」と入力されているとします。
のところを
A1セルに1
B1セルに2
C1セルに4
D1セルに6
と入っているとして、抜けている3列と5列を挿入するようなコマンドなんですが。
602 :
sage:2008/02/02(土) 20:11:02
昨日まで普通に使えていたのが、先ほどエクセルを起動しようとしたところ
インストーラーが立ち上がり、使えなくなってしまいました。
インストールCDはないので、どうしたらいいのでしょうか?
失礼・・・
604 :
571:2008/02/02(土) 20:17:55
皆さんのレスを参考に、非表示の列として日付+店舗名のデータを追加し
そのデータを検索条件にして SUMIF() で集計するように修正したところ
希望していた動作をするようになりました。
どうもありがとうございました。
【質問】
「1分23秒」と書かれたセルを、「83」と変換する方法はありますでしょうか?
調べたのですが、セルに「分、秒」等の2バイト文字が入っている場合の変換方法に関しては
見つけられなかったのでお聞きしました。
10個ほどのセルなら暗算でやるのですが、これから2000個程のセルを
処理しようと考えているので…。
606 :
605:2008/02/02(土) 20:27:38
607 :
606:2008/02/02(土) 20:40:27
↑のサイトの方法で、分の値は LEFT 関数と FIND 関数を用いて取り出せたのですが、
秒の値は MID 関数では下記のようにうまく取り出せません。
他の方法をご存知でしたら、教えて下さると嬉しいです
時間 分 秒
1分23秒 1 23
12分34秒 12 分3
LEFT(RIGHT(B2,LEN(B2)-FIND("分",B2)),FIND("秒",RIGHT(B2,LEN(B2)-FIND("分",B2)))-1)
=MID(A1,FIND("分",A1)+1,FIND("秒",A1)-(FIND("分",A1)+1))
=LEFT(A1,FIND("分",A1)-1)*60+MID(A1,FIND("分",A1)+1,FIND("秒",A1)-FIND("分",A1)-1)
611 :
697:2008/02/02(土) 20:56:10
>>608 本当にありがとうございます…!!
RIGHT 関数をいじってみても中々出来ずじまいだったので…。
感謝感激です!ありがとうございました!
何度もありがとうございます。
>>609 でもうまくいきました。
>>610 は、分の値を抜き出す部分*60+
>>609 ですね。
>>610 により、一発で秒換算することが出来ました…!
本当にありがとうございました。
私が 2ch を使ってきて1年以上経ちますが、これほど素晴らしいレスを頂けたのは
ありませんでした。私がお返し出来ることはほとんどございませんが、
せめてこのスレに常駐して、質問に来た方になるべく回答していこうと思います。
駄文失礼しました
615 :
あやか:2008/02/02(土) 21:14:41
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 ??
すみません。Excelで唐突な質問なのですが。。。
実は今、会社の売上表のデータ確認作業をしているのですが、
ある製品のみ計算式とは違う値が入っているのに気付きました。
セルには、計算式「=ROUND(0.004*A2),2」と入っているのですが、
その値が、=0.004*A2の値でないものが入っているんです。
その値は、計算式による値よりも、すべて14.925多く、
明らかに故意による操作と思われるのですが、
エクセルの機能で、計算式を表示させながら、別の値の数字を表示させるなどと
いうことは可能なのでしょうか???
どなたかご存知でしたら教えてくださいませM(__)M
>>615 A2には何の値が入ってて、問題の計算式が設定されているセルには
何と表示されてるの?
617 :
あやか:2008/02/02(土) 21:37:01
>>616 さん
返信ありがとうございます。説明が下手でごめんなさい。
この表を具体的に説明します。
正確にはA2ではなくF2列となります。
A B C D E F
注文番号 製品名 数量 単価 合計金額 手数料金額(合計金額の0.004%)
このF欄は、製品毎の売上合計金額に対して、0.004%の手数料金額の値を入力する為、
「=ROUND(合計金額*0.004,2)」 と入力し、その値が入っています。
しかし、とある製品のみ、この掛け算の値ではない数値が入っています。
この製品のみ手数料金額の値は、「=売上合計金額 /14.925」の数値なのですが、
なぜかセルにはちゃんと計算式「=ROUND(0.004*A2),2」と入っているのです。
計算式はきちんと入力している風ですが、実際の値は、通常よりも大目の値の為、
多めに手数料を支払う事となってしまいます。
エクセルの機能で、計算式を表示させながら、別の値の数字を表示させるなどと
いうことは可能なのでしょうか???
値の意味よりも値が知りたい
619 :
598:2008/02/02(土) 21:52:47
>>601 だから、できないってば。
VBAなしでどうにかしたいなら、列を挿入するんじゃなくて、値を変える事を検討したら?
=COLUMN() と書けば、その列数を数字で取れる。
=CHAR(64+COLUMN()) と書けば、Z列までならアルファベットで取れる。
>>617 特定の製品だけ、ということなら、その製品の単価に理由があるって気がする。
ちなみに、VBAが組み込まれてはしてないよね?
621 :
あやか:2008/02/02(土) 22:02:33
>>618 さん
このある製品の手数料金額の値は
本来の計算は「=数量*単価=合計金額*0.004」の為、数量毎に違いますから一例で説明できないのですが。
共通していえることは、調査の結果、このある製品のみ
どうやら「=数量*単価=売上合計金額 /14.925」の数値がはいっているのです。
でも計算式はちゃんと「=数量*単価=合計金額*0.004」と入っている・・・って感じです。
エクセルの機能で、計算式を表示させながら、別の値の数字を表示させるなどと
いうことは可能なのでしょうか???
>>621 数量と単価と合計金額の表示とセルの内容をもう一度よくチック汁
623 :
名無しさん@そうだ選挙にいこう:2008/02/02(土) 22:10:42
分かりましたら教えをよろしくおねがいします。
ユーザーフォームを使用してリストボックス入力の際によく使う特定のデータを
表示し修正をしない場合はそのデータがセルへ入力されるようにしたい。
(デフォルト表示です)
どうすればよいのでしょうか。
1回の入力だけでなく、入力した値を更新処理し、次のデータの入力を
できるようにしたいのです。
Cells(i, 2).Value = ListBox1.List
の.Listを他のに変えて、ValueやTextでもないみたいです。
単なる、初歩的なんでしょうが、困っています。
よろしく。
624 :
あやか:2008/02/02(土) 22:12:16
>>620 さん
返信ありがとうございます。
そうなんです。私もその製品の単価に理由があるのかと思うのですが、
この表じたいを管理しているのは上司ですが、
上司には全ての製品の手数料は0.04&と聞いています。
今確認しましたが、私がもらったファイルには、VBAは組まれていません。
この手数料欄だけは財務部担当が入力しているので、
なぜこの製品のみこのような値を入れているのかナゾなのですが。
実験的に別の数値を入れてみろ
数量100 単価100 とか
>>624 そのブックのバックアップを作って、自分で単価や数量を書き換えたらどうなるか調べろ
説明は具体的に。
計算式はわかったから数量、単価、合計金額、計算結果をそれぞれ実際の数値で書いてみたらいい回答がつくかも。
>>624 >エクセルの機能で、計算式を表示させながら、別の値の数字を表示させるなどと
>いうことは可能なのでしょうか???
この質問の回答のみが欲しくて、数値の具体例は挙げられないってこと?
そういうことは、できないはず。
とりあえず 625の言うように、簡単な数値を入れて実験してみたら?
629 :
あやか:2008/02/02(土) 22:39:10
>>622 さん
もちろん、すべて確認済みです。
2007年度の手数料金額合計の総合計を算出するにあたって、
上司と財務がだした総合計金額と、私が関数で算出した金額が違う為、
よくよく見ると、このある製品の手数料金額のみ、
「=数量*単価=売上合計金額 /14.925」の数値がはいっているのです。
でも計算式はちゃんと「=数量*単価=合計金額*0.004」と入っているのです。
もし、このある製品の手数料金額のセルに「=数量*単価=売上合計金額 /14.925」の計算式がはいっていれば
上司に手数料金額のパーセンテージを再度確認すればよいですが、
計算式はちゃんと「=数量*単価=合計金額*0.004」を表示させながら、
大目の手数料金額値を算出しているようにみえて、上司にきけません。
エクセルの機能で、計算式を表示させながら、別の値の数字を表示させるなどと
いうことは可能なのでしょうか???
可能であれば、故意的に手数料を多めに算出をしているって事ですよね?
これって犯罪なのでは?と思ってしまっているのですが・・・。
どなたかご存知ないでしょうか?
エスパーの俺が推測するとだな
数量 単価 金額 手数料
10 100 1000 4
20 100 2000 8
30 100 3000 12
ー−−−−−−−−−−−−−
60 6000 24
と、手数料金額合計が 24 とならなければいけないのに、6000/14.925の 402 が入ってるってことだな?
単なる途中の計算式誤りだよ
可能かどうかだけでいえば可能
としか答えられない、原因を調べる気が無い様なので実際がどうなのかはわからない。
632 :
名無しさん@そうだ選挙にいこう:2008/02/02(土) 22:55:55
表示に関して言えば書式設定を使えばなんとでもなる
633 :
あやか:2008/02/02(土) 23:14:32
>>632 さん
返信ありがとうございます。
こうです。怪しい製品は、製品名Aとすると、
製品名 数量 単価 金額 手数料0.04
製品A 10 100 1000 67(計算式は=1000*0.04と表示されている。本来の値は40)
製品B 20 100 2000 80
製品C 30 100 3000 120
製品A 20 100 2000 134(計算式は=2000*0.04と表示されている。本来の値は80)
製品D 50 100 5000 200
ー−−−−−−−−−−−−− −−−−−−−
130 13000 601 (本来、 520 であるべき)
金額の総合計金額は、間違いがありませんでした。
手数料総合計が違ったので、今回、怪しい製品Aの手数料金額を発見したのです。
あああ。どうなっているんだろう。。。
その式四行分でいいから編集せずにコピペで張り付けてくれ
それで解決する
四捨五入とか切り捨てとか、計算過程で誤差が出てたり。
本当に怪しい物を仕込まれているなら別のソフト(OpenOffice等)でチェックすると
637 :
あやか:2008/02/02(土) 23:24:38
>>634 さん
はい。すみません。
製品名 数量 単価 合計 手数料
TBLX 700 14.60 10,220.00 408.8
TBLA 432 19.00 8,208.00 328.32
TY-ST 20 19.00 380.00 15.2
STRING 65,330 0.0597 3,900.20 261.32
あやしい製品は、STRINGです。
ついでに合計と手数料の計算式もそれぞれ4行分貼って
あ、計算式いらない
65330*0.04=261.32
手数料のセルの式がほしい
4つともコピーして張り付けてくれ
そのシートの怪しい部分だけ新規ブックにコピペして、どっかにアップロードできない?
集計のセル間違えてたのか
よし、カンで答えてみる
まず、stringの単価、これが四捨五入されて0.1になってる
つまり…
オプション→計算方法→表示桁数で計算する
のチェックを外せばすぐに解決!
たぶん。
645 :
あやか:2008/02/03(日) 00:02:41
あああ!!みなさん、ありがとうございます!!
なぞが解けました(^^)
そんな単純な事だったなんて・・・・(−−;
よくよく見たら、この怪しい製品のみ、売上金額の*0.04手数料でなく
数量に対しての*0.04手数料みたいです。
見逃していた自分がお恥ずかしいです。
財務が間違えたとは思えないので、この製品の件、上司に聞いてみます。
みなさん、ありがとうございましたm(__)m
質問者がタコだと解決に手間取ること手間取ること
だからセルの式をはれば解決とあれほど
まぁ、自分の身内じゃなくて良かった
649 :
名無しさん@そうだ選挙にいこう:2008/02/03(日) 08:04:18
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 フィルタ 参照 条件 IF 2つの条件
A B C
a い 赤
b い 黄 左の表を元に、下記のそれぞれH7にはAから, K10には
c い 赤 Bからリストで選択した際I10に色の名前を表示させるこ
d い 赤 とは可能ですか?
e い 白
f い 白
g い 赤 [ H7 ]
a ろ 緑 [ K8 ]
b ろ 緑
c ろ 緑
d ろ 緑
e ろ 黒
f ろ 緑
g ろ 緑 [ I14 ]
a は 茶
b は 茶
c は 茶
d は 青
e は 青
f は 橙
g は 紫
650 :
649:2008/02/03(日) 08:09:28
>>649です!すみません!セル番号が間違ってましたので訂正して再質問です!
貴重なスペースを申し訳ありません!
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 フィルタ 参照 条件 IF 2つの条件
A B C
a い 赤
b い 黄 左の表を元に、下記のそれぞれH7にはAから, K8には
c い 赤 Bからリストで選択した際I14に色の名前を表示させるこ
d い 赤 とは可能ですか?
e い 白
f い 白
g い 赤 [ H7 ]
a ろ 緑 [ K8 ]
b ろ 緑
c ろ 緑
d ろ 緑
e ろ 黒
f ろ 緑
g ろ 緑 [ I14 ]
a は 茶
b は 茶
c は 茶
d は 青
e は 青
f は 橙
g は 紫
aい 赤
の形で表をつくっておき、
=VLOOKUP(A14&B14,表,2,0)
652 :
名無しさん@そうだ選挙にいこう:2008/02/03(日) 09:15:41
>>650 一番分かりやすいのは、条件を一つにまとめる方法
A列の前に列挿入して、
新しいA1に =B1&C1 と入れて、A列の必要な範囲にコピー
んで、I14に =vlookup(H7&K8,リスト範囲,4,false
653 :
649=650:2008/02/03(日) 10:58:54
654 :
名無しさん@そうだ選挙にいこう:2008/02/03(日) 12:33:54
【1 OSの種類 .】WindowsXP
【2 Excelのバージョン 】Excel2003
【3 VBAが使えるか .】初心者
【4 VBAでの回答の可否 】可
【5 検索キーワード 】VBA WebPagePreview
隠しシートの 「ブラウザでプレビュー」に関して質問があります。
「シートの再表示」→「ブラウザでプレビュー」→「シートを表示しない」
というマクロは組めるのですが、目的のシートを再表示しないまま
ブラウザプレビューをする方法はあるでしょうか?
よろしくお願いします。
655 :
名無しさん@そうだ選挙にいこう:2008/02/03(日) 17:07:34
XwindowsXPを使っています。
デスクトップにあるエクセルのアイコンをクリックするとエクセルが開くのですが、
セルの部分が全てグレーになり入力できません。
上のバーの「開く」のところから目的のファイルを選択すると開くことができます。
いちいちこの作業をしなくてはならず面倒です。
どなたか元通りにする設定の方法を教えてもらえないでしょうか?
>>589 ダイソーの100円の中級者用買ってきた。
105円だからと思って中身を確認しなかったけど、買ってきて中身を見たらほぼ100%近く知っているものばかりだったorz
だから1000円の買わなくて良かっただろ?
1000円のを買わなくても良かったけど、やっぱり欲しかったのは映像で教えてくれるものだと思いマスタ。
中級以上ならMYCOMの「Excelの極意」シリーズなんか結構おすすめ
てなわけでソースネクストのオフィスのを注文してみますた。
ソースネクストのソフトは行儀悪いから気を付けた方がいいぞ
ヤフオクに2,980円でDVDライブ講座の初級編なるものが出ているけど、
あれって応用編とか上級編とかあるのかな。あるなら欲しいかも。
ダイソーの立ち読みしてみたけど、
ショートカットキーだけやたらと詳しいな
個人的にあのページだけ100円でも見返りはあるように思う
上級者用ってのがあったらほしい
後みんな言ってるけどソースネクストだけはやめたほうがいいよ
このスレで回答しているような人ってどうやって学んだんですか?
もともとプログラマーとかの人は基本的素養があるんだろうけど、
それ以外の一般人でエクセルの達人みたいな人はどうやって学びましたか?
マメに書籍や雑誌で技を習得した?
センスじゃないかな?
ある程度分ったら応用利くし
アンチソースネクストの人たちって過去に何のソフトを使っていたい目にあったんですか?
自分はタイピングソフトの特打しか使ったことが無くて、特段、いや〜んなイメージは無いのですが。
ソースネクストは案外馬鹿にできない。
パーティション操作とかHDDバックアップとかワクチンソフトとか、海外製のは安くて高品質なのがあったりする。
これは何とか楽したいな、
と思って検索→導入の繰り返しかな
例えば月間の表を作りたいとして、2月なんかは29、30、31まで
表示されてしまう
自動でなんとかできないかと思い
月間 表 エクセル 31日
なんかで検索して、式の意味を理解して…
っての繰り返しかなぁ
マクロも覚えるより先にサンプルをコピペして使ってから意味覚えたし
ifとvlookupだけ押さえておけばかなり応用はきくね
あと一番大事なのは検索する語句のセンスかもな
>>663 確かにショートカットキーは覚えると便利なのもありますね。
そのショートカットキーですが、
CTRL+0 で非表示になりますけど、CTRL+SHIFT+0で表示らしいですが、実際にやってみると表示にならんのですが。
カーソルをどこかに置く必要があるんですかね?
EXCELの各バージョンのシェアってどんなもんですかね?
このスレの質問者の割合を見ると
EXCEL2003 4割
EXCEL2007 3割
EXCEL2000 2割
その他 1割
みたいな感じ?うちは貧乏なんで2000です、はい。
EXCEL上達方法について
一度EXCELから離れてデータベースに触れてみたらいいよ。
データの正規化とか結合を知る前と後ではデータに対する感性が変わると思う。
pcに疎い人向けにどうしようもないアプリ売り付けすぎ
>>667 フリーで十分じゃね
>>669 非表示にした後カーソルを動かさなければ再表示できる
一度動かすと、その左右の列をドラッグしてからじゃないと戻せない
A列の場合はctrl+Aかジャンプで指定しないと戻せないかも
つか、データベースソフトって高いのな。イパーン人ユースとは違うのね。
>>670 自宅が2000、仕事が2003、良く使う別の席が2007
となってます
バージョン違うとものすごい勢いでマクロが誤作動起こすんだよなぁ
>>675 操作でとまどいません?特に2007って結構変わってますよね。
677 :
671:2008/02/03(日) 18:21:40
>>673 何でもいいよ。ACCESSでもいいんじゃない?
データベースを体験するとEXCEL使うときでもデータをリスト形式で扱うようになる。
vlookup()なんてデータベースでいう結合の代替品みたいな機能だとわかる。
MS-DOSなLOTUS1-2-3の時代から表計算ソフト使っていたのに、vlookup関数から先が理解出来ていなかった。
中級者と上級者の壁だと思う。いや万年初心者と中級者の壁か。
実務ならなんだかんだでアクセスだろう
ファイルメーカーなら試用期間もあるし使いやすいんだけどね
なんにしろ、一度ちゃんと使えば一つのシートに
複数のデータベースを入れるとかはなくなるだろう
>>676 細かいところがかなり変わってるよな
一言でいうと、使いにくい
無理に変えなくていいのに…
ACCESS高いよ。googleの無料オフィスにあるやつで十分
681 :
671:2008/02/03(日) 18:28:24
リスト形式
並べ替え
SUM()関数
オートフィルタ
ピボットテーブルレポート
これだけ覚えればいい。
たまにMID()とかLEFT()なんかの文字列操作関数が役に立つ。
SUMIF()とかはあんまり役に立たないので覚えなくてもいい。
昔、MS-DOSの頃かな?F1DATABOXなる素人でも使えそうなデータベースソフトは使ったことがあります。
その後、馬鹿でも使えるようなデータベースソフトって生き残って無いですよね?
アクセスは簡単な部類なのかもしれんけど、やっぱり俺的には難しく感じた。
683 :
671:2008/02/03(日) 18:30:17
ごめん。vloolup()を忘れていた。
リスト形式
並べ替え
SUM()関数
オートフィルタ
vloolup()
ピボットテーブルレポート
これだけ覚えればいい。
たまにMID()とかLEFT()なんかの文字列操作関数が役に立つ。
SUMIF()とかはあんまり役に立たないので覚えなくてもいい。
>>683 ありがとうございます。
そうやって限定されると覚える意欲も沸いてきます。
さっそくオートフィルタを使えるようになりました。(最初の設定だけだけど)。
確かに絞り込み出来て便利かも。
685 :
671:2008/02/03(日) 18:43:56
次はピボット覚えたらそれでおしまい。
EXCELなんてそれだけで9割OKです。
がんばって。
【1 OSの種類 .】Windows2000
【2 Excelのバージョン 】Excel97
【3 VBAが使えるか .】使えません
【4 VBAでの回答の可否 】可
【5 検索キーワード 】セル 参照 シート 変える 条件
初歩的な質問だったらすいません。
条件によって参照するシート先を変えたいのですが、関数で処理はできますでしょうか。
例えば、sheet1のa1に「現金」とある時に、b1に「現金」シートのb1を表示すると言ったことを考えています。
ただし、sheet1のa1は計算結果によって様々に変わるため、b1に直接「=現金!b1」と書き込むことはできません。
また、該当するシートがないときにはエラーを返すことを考えています。
よろしくお願いいたします。
とある会計ソフトから出力されるテキストファイルの日付の部分が
"20080125"という形式なのですが、そこから年、月、日をセル分けしたいのですが、可能ですか?
=YEAR( ) や=MONTH()では駄目なようです。
ああ、こういう時にLEFTとかRIGHT関数を使えば良いのか。。
689 :
671:2008/02/03(日) 18:59:51
>>688 そういうことです。
あとはオートフィルタで年別,月別に抽出したり,ピボットテーブルで集計するんです。
どれも組み合わせなんだよな
ただ、その部品を知らないとできないんだけど
あとこのスレで解答してると色んなケースに対応できるようになる
かも
>>689 どもども。
LEFT関数とRIGHT関数を知っただけでもダイソー105円の価値はありますた。
>>687 文字列として取り込んで、[データ]-[区切り位置]で固定長で4文字・2文字・2文字で区切ればいけるよ
694 :
671:2008/02/03(日) 19:09:11
>>686 質問に対する直接の回答は
>>690さんのでいいでしょう。
ただ,このような変わったテクニックでしか運用できない表はデータのモデルに問題があると思います。
「なんちゃらSQL入門」のようなデータベースの教科書を読んでみることをおすすめします。
>686
回答を返すシートのA1セルに 値の入っているシート名
回答を返すシートのB1セルに =INDIRECT(A1&"!A1")
エラー処理をするなら、B1セルにISREF関数を組み合わせる。
バカじゃねーか
参照するテーブルやビュー変えるのと一緒の事だろ
DB本読んでる自分が好きなだけなアホだな
697 :
671:2008/02/03(日) 19:14:08
うん、DB形式がとてつもなく効率的なのは確かだけど
他人の、しかも見てもいないやり方にケチをつけるもんじゃ無いと思う。
>687
典型的。A1セルに値があるとして、
年、月、日の順に
=LEFT(A1,4)
=MID(A1,5,2)
=RIGHT(A1,2)
でも見なくても分かるっしょ
そういうのは1から俺が作ってやるぜ!
といいたい
>>693 なるほど〜。そんな方法もありましたか。
701 :
671:2008/02/03(日) 19:18:17
>>698 =MIDなんてのもあるんですね。
自分は=LEFT(RIGHT(A1,4),2)なんてことを考えていました。
でも区切った方が楽っぽい。
>>690 >>694 >>695 indirectで解決しました。
表の形式は、実のところ勘定元帳の形式を崩したくないだけだと思うのですが
自分の一存では何ともなりませんで……。
大変有り難うございました。
こんな感じで、色んなやり方を覚えれるのがこのスレのいいところ
ちなみに俺は
>>698に近いけど真ん中が
=right(left(a1,6),2)
って作った
midシラナカッタゼ
バカが調子づいて嘘教えなきゃな
たまに動かないマクロとか置いてあるけどあれはさすがになぁ
ただ情報はどんどん出していってくれたほうが嬉しいぜ
707 :
名無しさん@そうだ選挙にいこう:2008/02/03(日) 19:31:57
left right mid を今知ったという人に蛇足
半角・全角を区別せずに1文字でカウントしてます。
めったにないとは思いますが、半角(1バイト文字)で何文字相当という指定をするときは
leftb rightb midb と b を付けます。
これは len find でもいっしょです。
「動かない」と「動かせない」は別物だと思うけどなw
↑ ↑
マクロに問題 動かす奴の頭に問題
【1 OSの種類 .】WindowsXP
【2 Excelのバージョン 】2000
【3 VBAが使えるか .】使えません
【4 VBAでの回答の可否 】否
【5 検索キーワード 】文字列 数値
A1セルに例えば「1」と入力し(数値)、
B1セルにA1セルの数字+月分を表示させるにはどうすれば良いのでしょうか?つまりB1セルに「1月分」と表示させたいのです。
B1セルに、
=A1&"月分"
オートフィルタなる便利な機能を覚えたらプルダウンメニューの中に降順、昇順の並べ替えがあったら便利だな。と
思ってググったら2003以降の機能ですか。2000じゃ手も足も出ないですかね?
「オートフィルタのプルダウンメニューの中の『昇順で並べ替え・降順で並べ替え』オプションは
Excel2003以降の新機能」
>>714 普通にフィルター掛けた後に並び変えたらイイのでは??
面倒?
並び替えてからフィルターかけてもいいな
【1 OSの種類 .】WindowsXP
【2 Excelのバージョン 】Excel2000
【3 VBAが使えるか .】ちょっと
【4 VBAでの回答の可否 】可
15000行くらいの不要なデータを行で削除したら図形が入ってて、
ドット状のゴミが多数残ってしまいました。
これらを奇麗さっぱりと取り除くにはどうすればいいでしょうか?
>717
[F5] > "セル選択" > "オブジェクト" > "OK" > [Delete]
[]内はキーボードのボタン。
719 :
名無しさん@そうだ選挙にいこう:2008/02/03(日) 23:12:55
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
郵便番号 営業担当
-----------------
160-0001 A 左記のような約6000通りの営業担当地域表データを元に、
160-0002 A VLOOKUP関数で顧客データの郵便番号から
160-0003 B 担当を割り出そうと考えています。
160-0004 C 心配なのが、データ量が多くて重くならないか?
160-0005 C という点です。
160-0006 B
160-0007 C ▽関数で他にいい手段はないか?
160-0008 D ▽VBAならどう書けばよいのか?
・ ・ ▽どれくらい重くなるものなのか?
・ ・ これだけのデータ量を扱うのは未知の領域なので、
計6000行 お知恵を拝借させてください。
VLOOKUPするだけならなんら問題なし。
入力した数字に×1.05(消費税)
で入力したいのですが、
どのようにしたらいいのでしょうか?
(数字入力時に税込み表示にしたいのです)
できません。入力セルと表示セルを分けてください。
「形式を選択して貼り付け」で1.05を乗算でペーストする方法もあるにはあるけど。
>721
作業するシートを開き、[Alt]+[F11]を押すと、VBEが起動する。
さらに[F7]を押すと真っ白なコードウインドウが表示されるので、
以下のコードをそのまま貼り付ける。
作業シートに戻って数字を入力すると…?
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Selection.Value = Target.Value * 1.05
Application.EnableEvents = True
End Sub
724 :
723:2008/02/04(月) 00:16:06
ごめ 修正した
>721
作業するシートを開き、[Alt]+[F11]を押すと、VBEが起動する。
さらに[F7]を押すと真っ白なコードウインドウが表示されるので、
以下のコードをそのまま貼り付ける。
作業シートで数字を入力する。
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Target.Value = Target.Value * 1.05
Application.EnableEvents = True
End Sub
>>721 イベント処理ってのを検索して勉強すればいいよ
726 :
名無しさん@そうだ選挙にいこう:2008/02/04(月) 00:37:07
>>721 >>724のコードの1行目と2行目の間に
dim myrng as range
Set myrng = Intersect(Target, Range("$B$1:$B$10"))
If myrng Is Nothing Then exit sub
といれればこのマクロが動く範囲を指定できます。
Range("$B$1:$B$10")の所を好きな範囲に置き換えてください。
727 :
名無しさん@そうだ選挙にいこう:2008/02/04(月) 01:47:26
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000 (9.0.3821 SR-1)
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Excel 軸 長さ
お邪魔します。質問させてください。
検索したら6年位前のスレで同様の質問があったのですが、回答はなくこちらへ誘導されていました。
散布図を作成した時、y軸の名前が途中で途切れてしまいます。
y軸名を
Concentration of NaOH[μM]
などとすると、"M"の途中あたりで表示が途切れ見えなくなってしまいます。
"]"の後半角/全角スペースを入れても改善されませんでした。
とりあえず白い文字で"a"を追加し
Concentration of NaOH[μM] a
とし、その場しのぎは出来ましたが、もう少しちゃんとした対応策を知りたいです。
軸名欄の長さをもっと長く出来ればよいのですが、プロット欄やグラフエリアのようにマウスで引き伸ばすことは出来ませんでした。
よい解決法をご存知の方回答宜しくお願いします。
>>727 2002では改善されてる
よく分からんがフォント変えてみたら?
729 :
727:2008/02/04(月) 07:26:46
>>728 レスありがとうございます。
フォントはTimes New Romanを用いていました。
ためしにArialにしたら無事納まりました。
でも、残念ながらフォント指定なんです。
そして、別のグラフでもう少し長い文字列をは白文字の"a"でも改善されないものも出てしまいました。
どなたか改善策をご教授おねがいします。
>>687 >>693 区切り位置の固定長を使用するのは同意だけど
4,2,2で区切るとセルが分割されちゃうじゃん
区切らず次へ進んで、最後の列のデータ形式でYMDを選択すれば
セル分割せずにそのままシリアル値に変換できる
>>731 セルが分割された方が良かったんで好都合っす。
733 :
731:2008/02/04(月) 12:31:51
>>732 最初の質問文を読み飛ばしてたわ
すまんす
734 :
名無しさん@そうだ選挙にいこう:2008/02/04(月) 14:02:43
オフィス2003です。
セルに 22−1 と入力すると,勝手に「1月22日」と置き換えやがります。
22−1のままにしたいのですが,,どうしたらよいでしょうか。
>>734 入力する範囲の書式を、あらかじめ[文字列]にしてから入力する
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
エクセルで作ったセル内の複数行あるテキストを、ワードの新規ドキュメントを開いたうえで、
最初の行に貼り付け、ワードのマクロを実行させたいと考えています。
テキストはa として、chr(10)で改行しているので、ワードでは都合が悪いので、
replace(a,chr(10),chr(13))
・・・以降がわかりません。
どなたかご教授下さい。
738 :
737:2008/02/04(月) 14:25:28
すいません、少し訂正します。
セル内に貼り付けると自動的にchr(10)になるようなので、変数のままで貼り付けたいと思います。
v = replace(a,chr(10),chr(13))
以降がわかりません。
vをテキストのソースとして、以降どう書けばよいのでしょうか。
word側のマクロは”作成”です。
>>737 どうしたいのかが良く伝わらないが、a の改行コードを変えたいのなら
a = replace(a, vbLf, vbCrLf)
で良いと思われ。
>>739 ありがとうございます。
chr(10)をchr(13)に変換したあと、
1.ワードを起動(新規ドキュメント)
2.v(変換後のa)を先頭行に貼り付け
3.ワード側のマクロ、「作成」を実行
の3ステップをふみたいのです。
今手元にある本ではワードの操作方法がまったくわからないので、ここで質問させていただいております。
引き続き、ご存知の方のご教授を求めたいと思います。
>>740 ワード側のマクロ(VBA)で、エクセル開いちゃダメなの?
コード的には、そっちの方が分かりやすいんじゃないだろか。
エクセルのセルをコピー、ワードに貼り付け
右下の貼り付けオプション(っていうのか知らんけど)をクリックしてテキストのみ保持、
じゃダメか?
【1 OSの種類 .】 WindowsXP pro
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
これからエクセルを覚えていこうと思っています。
検索では「できるエクセル」的な本が見つかりましたがなにかお勧めが
ありましたら教えてください。
学習期間は1月で関数を使った作業ができるまでを目標としています。
とりあえずA1に5、B1に3と入れて
C1に=A1+B1と入れてみると、セル同士の意味が理解出来ると思う
=A1-B1や、=A1*b1、=A1/B1なんかも試してみて
次はsum関数
D1に=sum(a1+b1)
次は関数で範囲選択
E1に=sum(a1:b1)
と入れてみる
これだけでも実務でかなり役立つ
後は実務で直接使うほうが早く覚えられるかなぁ
それと罫線の引き方とセルの色付けは覚えておいたほうがいい
あとは100レスぐらい上で必要な式を色々言ってたと思う
>>743 関数が使えるように、というのが設定目標であれば、
定番の関数の使い方に触れている本なら何でも良い(安いものがおすすめ)と思う。
自分のレベルにもよるだろうけど、図解が多かったり、
Howより WHY を重視してる、解説の多い本のほうが役に立つかもね。
それで基本が習得できれば、あとは作業の都度F1キーを押すだけで事足りるw
F1のヘルプってある程度慣れないとさっぱりわからんよな
マクロに手を出すころには重宝するんだけど
未だにvlookupの引数の順番間違えるぜ
>>746 2000ユーザーか?
そういうあなたにはCtrl + Shift + a
2002以降は下に自動で表示されるが。
Excel2003です
XPです
マクロ初新者です
足し算のマクロなんですけど
行がどこまで行くかわからないことを前提で
合計を出したいセルから実行して
一個上に移動したところから A1までというマクロを作りたいのですがうまくいきませんよろしく御願いします
(A列での入力 合計です)
1個上は相対参照 A1は絶対参照になり うまくいきません
一応 足し算だけでなくその先にいろいろな処理を考えています
ここでつまずいてしましました
よろしく御願い致します
>>748 足し算の関数式(=SUM)をセルに入力したいのか?
足し算の結果(和)だけがセルに入力されればいいのか?
それによって回答も違ってくるが
750 :
名無しさん@そうだ選挙にいこう:2008/02/04(月) 19:13:36
2003+xp vbaでの回答を求む。各行のデータ値を削除したいのだが、・・・
行には次の3種類があります。
@ドロップダウンリストで入力するセル A関数の入っているセル Bデータ打ち込みセル
""で置換すると関数までが消えてしまうのでclearcontentsを使ったら、ドロップダウンリスト入力のリストが消去された。
値だけを消去する適切な文を教えてほしい。
ああ、関数+裏技で2,970円の達人パックってのがあるんだ。個人的にはそれだけで良かった。
Range("A1").Interior.ColorIndex = 6
↑のように色をつけるVBAを使ってるんですが
このカラー番号の一覧みたいのはないでしょうか?
灰色25%よりもう少し薄いの(20%か15%くらい)を設定したいです。
Excel ColorIndex でぐぐればすぐ見つかるとおも
>>749 様
一応 関数式=SUM( )で入力してやったのですがうまくいきませんでした
=SUM(相対対象のセル:絶対対象のセル)
みたいに自動記録でやろうと思ったんですけどだめでした
数式として入力したいです
よろしく御願い
756 :
名無しさん@そうだ選挙にいこう:2008/02/04(月) 21:21:15
>>749 Sub Macro1()
ActiveCell.Formula = "=sum($a$1:" & ActiveCell.Offset(-1, 0).Address & ")"
End Sub
757 :
756:2008/02/04(月) 21:22:27
758 :
743:2008/02/04(月) 21:31:41
>>744-745 レスありがとうございます。
早速アマゾンでこの二冊をポチって来ました。
・速効!パソコン講座 エクセル―Excel 2003&2002版WindowsXP対応
・やさしくわかるExcel関数・マクロ 改訂版 (Excel徹底活用シリーズ)
また教えていただくことがあるかも知れませんがそのときはよろしくお願いします。
どうもありがとうございました。
759 :
名無しさん@そうだ選挙にいこう:2008/02/04(月) 21:51:39
>>758 大体のテキストはボタンをクリックして操作する方法の説明になっていると思います。
最初はそれで覚えたほうが最低限の操作を早く覚えられますが、そのあとはALTメニュー(上の「ファイル(F)」とか)から操作するように癖をつければ、
・操作が速くなる(Alt E I S Enter で連続データ入力完了とか)
・関連する機能がメニューに表示されるので多くの機能が学べる
とか結構メリットがありますよ
あと、意外と知らないのがShift+F1のポップヒント
カーソルのデザインが変わるので、気になる部分をクリックしてみましょう
tiik
761 :
名無しさん@そうだ選挙にいこう:2008/02/04(月) 23:05:52
お世話になります。
今VBAを覚えようとしています。
手作業で行うのがしんどいので、VBAを使おうということで、初めてVBAに触っています。
目的の機能を使えるようになるまで気が遠いので、少しアドバイスください。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 いいえ(今勉強始めたところ)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】何で検索したらいいかわからないので、vba excelで入門を試しています
【購入図書】やくわかるExcelVBAプログラミング
表の中の特定の項目名に属する、数値(整数)のみの総和を求めるマクロを作りたいです。
項目名の下を探索しながら、加算していくのかとかんがえているのですが、手を付けたばかりで範囲指定をどうすればいいか見当が付けられません。
力添えいただけませんか。
セルには空白や文字列が含まれる可能性があるのですが、注意する必要はあるでしょうか。
(文字列は、無理であれば、考えなくてかまいません。元のデータに文字列が入らないようにします。)
また、特定の項目名のセルの位置は今後列番号が変更される可能性があり、上記が出来るようになったら、その対応もする予定です。
情報不足あるでしょうか。
よろしくお願いします。
>>761 どっちが主目的?
1.とにかくVBAを覚えたい
2.項目別に集計したい
763 :
761:2008/02/04(月) 23:15:36
>762
761です。
2.です。
2を行うためにVBAを覚えようとして、途方のなさに泣き入っていました。
力添え、よろしくお願いします。
>>763 ピボットテーブルで検索してみてください。
VBAで同じことやるのは案外面倒です。
>>761 vba勉強する気持ちを持っているのは素晴らしいことだと思うが、
sumifでなんとかなるような気がする。
766 :
フ61:2008/02/04(月) 23:21:17
>>762
フ61です。
1.です。
取り急ぎ2を行う必要があるのですが
今後のために、VBAをしっかり覚えたいと思っています。
力添え、よろしくお願いします。
どこまで作ったのかな?
ところで、検索項目は一定なのか毎回変わるかも良く分からない。
項目の範囲を取得して、指定した項目のセルのアドレスなり位置が取得できるか。
話はそれからでも遅くない。
ちなみに SUM()のセル範囲に文字列があってもエラーにはならない
いちばん簡単なのはピボットテーブル つぎはSUMIF つぎはDSUM つぎはSUMPRODUCT
急ぐなら関数で結果を出してから
VBAは後でのんびり覚えればいいんじゃないの?
771 :
761:2008/02/04(月) 23:37:39
情報いろいろありがとうございます。
あまり多く書くと読みたくなくなると思い、一部端折っていました。
『必要に応じてブックをアップすること』:ブックのアップはどのような手段があるのでしょうか。
(ネタの本物は出せないのですが、似たフォーマットの、別の値のファイルを見てもらえれば…。)
鬼のような量のExcelファイルとシートがあって、
その中の、ファイル名・シート名・特定セルの値・と761の計算結果、を
ひとつのファイルに出力するのが、最終目標です。(会社の資料なのですが。)
現在、過去に誰かが、計算結果以外に関するマクロを作ってあって、
自分がそれを読んでどういう処理か確認しました。
初めてなもので、理解に時間がかかったのですが、ステップイン実行のおかげである程度読めて、
あとは761を実装するところとなったのですが、
『表の中の、特定の範囲の、値の中で数値のみの、総和を求める。』の手段について、
本を参照しても、見つけることが出来なかったため、相談させていただきました。
BOOKは複数あります。ただし、ひとつのフォルダの中にあり、サブフォルダは存在しません。
BOOKはシートを複数持ちます。
シートは、ひとつのテーブルとテーブルの説明情報(コメント)を持ちます。
これで、ほとんどすべてと思います。
一番役に立つのもピボットテーブルでしょうね。
集計結果をダブルクリックしたらその部分だけの明細まで出てくるし。
SUM系関数のテクニック駆使したり,VBAで一生懸命自作するのはあほらしい。
>>771 BOOKが複数あるならピボットテーブルが一番いいと思うよ。
どんなシートになっているかは知らないが
特定範囲の値を配列に入れて順に判定して行き
数字だったら加算するようにするのかな…と想像してみる。
>>761 個人的に、色々なマクロを作る際の土台としてるものをあげよう
A列+B列をC列に表示、A列の行数だけ続けるってやつな
Dim gyo As Long
gyo = Range("$A$65536").End(xlUp).Row
For i = 1 To gyo
Range("c" & i).Value = Range("a" & i).Value + Range("b" & i).Value
Next
End Sub
ある程度覚えれば、スゲー応用効くぜ
775 :
737:2008/02/05(火) 00:07:50
>>741 じつは諸々の事情がありまして、そういうわけにもいかないのです。
どなたかご存知ありませんか?
ワードとエクセルの連携に言及した本がなかなか見当たらなくて弱っています。
できるのかできないのか、まずわからないといった状況で・・・。
なんとなくだけど、このスレにいる人はほとんどワードさわらないと思う
アクセスならまだあるかもしれないけど
一言断って、プログラム板のVBAスレいってもいいかもな
777 :
761:2008/02/05(火) 00:10:13
761です。
ピボットテーブルは、複数のシートにも適用できるのですか。
まったく想定外でした。
>768
>ところで、検索項目は一定なのか毎回変わるかも良く分からない。
読み込むxls形式のファイルは、すべてフォーマット同じなので、
項目名が書いたセルは、毎回同じです。
ただ、変更の可能性があるのですが、変更があったら、マクロを書き直します。
項目名の位置は、Constで固定値を指示しようと思います。
c言語っぽく書くと、
const koumokumei_no_ichi = h10
summation = 0
for(i=0;i<範囲;i++){
summation = Range("h10"+i) + summmation ※1
}
みたいなことをやれればなぁ、みたいな…。
ほかは何とかがんばって、Netか本から見つけるとして、
※1の行の書き方を、教えていただけると、激しく時間短縮できるのですが。
( ファイル名、シート名に関しては、後から自力で加えるので、
( 行の移動の仕方(+iとか適当に書いている場所)と
( 式の文法、オブジェクトの指定の仕方を って調子よすぎですか。すみません。)
778 :
名無しさん@そうだ選挙にいこう:2008/02/05(火) 00:10:19
>>777 summationは変数?
summation = Cells(i, j).Value + summation
みたいな?
780 :
名無しさん@そうだ選挙にいこう:2008/02/05(火) 00:20:00
>>777 こんな感じ?
Set myrange = Range("h10")
For i = 0 To imax 'imaxは範囲内のセルの数
myval = Offset(myrange, i, 0).Value
If IsNumeric(myval) = True Then
summation = Offset(myrange, i, 0).Value + summmation
End If
範囲が1列の場合はこうかなと
781 :
780:2008/02/05(火) 00:24:27
適当に書いてチェックしなかったら間違いすぎだorz
Set myrange = Range("h10")
imax = 5
For i = 0 To imax
myval = myrange.Offset(i, 0).Value
If IsNumeric(myval) = True Then
summation = myval + summmation 'test
End If
Next i
>>753 RGB関数のがてっとりばやい。自分で好きな色が作れる。
>779
付き合ってもらってありがとうございます。感謝しています。
>summation = Cells(i, j).Value + summation
これを使わせてもらおうかと思うのですが、
たぶん後々、マクロの変更をするときに、Rowの数字と、Colの数字を、Constしたら、
コメントを書いても醜いと思うんです。
たとえば、"J20"から、列:10、行:20、を分離するにはどうすればいいでしょう。
const koumokumei_no_ichi = J20
...
summation = cells( bunnri_col(koumokumei_no_ichi),bunri_row(koumokumei_no_ichi) ).value + summation
...
逆に醜いか…?
Range(koumokumei_no_ichi).row
Range(koumokumei_no_ichi).col なのかな。今まさにコード入れて試します。
すれ汚しすまんせん。
>>783 Const koumokumei_no_ichi = "J20"
ですね。
それと
Range(koumokumei_no_ichi).Column
ですよ。
EXCEL VBAを動画で解説してくれるような教材無いですかね。
ググると2万円台の高いのしか見つからないのですが。
皆さんありがとうございます。
777とかです。
>784
はい、問題でした。
実行結果がおかしかったのと、エディタが教えてくれて気がつきました。
>781
神!光が…
>774
返信遅れました。
読んでます。ありがとうございます。
>Range("c" & i).Value = Range("a" & i).Value + Range("b" & i).Value
『"c" & i』。これは、"c4"とか文字列を作成しているのですよね?
>gyo = Range("$A$65536").End(xlUp).Row
これがかなり難解なのですが、
…ちょっと考えたり、実行してみます。
xlUpなどのxlは、何の略なのでしょう。
excelの略のような検索結果もあったのですが、意味は何なのでしょうか。
>774
感動した!
きっと、この一連で、何気に『.End(xlUp).Row』この辺りを教える目的ですかぁ!
しかし2点疑問が。
Dim gyo ということは、配列なのですよね?
それともAsをするためにDimなのでしょうか。
Asするには、要素一個のDimが必要ということで?
『"$a$65536"』のように、$を付けるのはなぜなのでしょうか。
シートに変更があった場合、VBAにも変更が及ぶということでしょうか?
いま、作った、マクロにおいて、行削除を行ってみたのですが、VBA側へは変更がありませんでした。
(この点に関しては、既存のマクロの解析中に、明らかに存在しないシート名を指定していたり、
(明らかにおかしなセルの位置を指定している文があったりして、もしかしてとは思っていたのですが。
(しかし、今、試してみても、シートを更新しても、マクロへは変更が及ばなかったのですが。
横レスだがdimは配列を宣言する命令ではない
dimは変数一般を宣言するためのものであって、配列を宣言するのにも使えるだけ
gyoはただの長整数型変数だと思う
$は絶対参照のこと
この場合はあってもなくてもあんまり関係ない
多分、習慣的につけないと気持ち悪いからつけただけじゃないかな
>788
ありがとうございます。
$ですが、無いとまずい場合は、どんな場合でしょうか。
シートの参照なんかだと、たまに使用するのですが、
マクロだとむしろ常に$付のような動作(というか、移動がありえない)ですよね?
多分ね。
やっぱりワークシート関数で使うときの癖でそのまま使ってるだけじゃないの?
あーごめん違うわ
ActiveCell.Range("A1")とかだと相対参照になるね
でも$がつくかつかないかで挙動が変わるケースがあるかどうかはよく知らない
792 :
774:2008/02/05(火) 07:35:14
エクセル2003です。
VBAも可ですが、勉強中のためよくわかっていません。
オートフィルタというのは当然のようにその行しか抽出する条件が指定できませんが、
二つ以上の行を条件に抽出したい場合、一般的にはどういうやり方があるんでしょうか?
例
会社名 発生 入金 手形 相殺
A会社 0 0 0 0
B会社 100 100 0 0
みたいにずらっと100社〜200社ならぶ表を作ったとして、
何らかの形で出入りがあった会社のみを表示したりできると
便利だと思うのですが、具体的なやり方がわかりません。
>>793 会社名 発生 入金 手形 相殺 出入
A会社 0 0 0 0 0
B会社 100 100 0 0 200
としたらどうでしょう。
出入は発生+入金+手形+相殺です。
ろくにパソコンを使わない素人でも解るようにVBAを解説しているサイトや書籍、教材は無いでしょうか?
抽象的な説明ばかりでいいなら
「プログラムはなぜ動くのか」かな
そもそもPCを触らない人間にプログラムの説明って時点で無理があると思うけど
>ろくにパソコンを使わない素人でも解るように
「そんなに本格的に勉強するつもりはないのですが」 というニュアンスを勝手に感じてしまうw
だから、専門書的な知識は必要としてないんじゃなかろうか?
つか、EXCEL VBAでググれば、それなりのサイトはすぐに見つかるよ?
あんまりEXCELも使ったことありません、ってんならちょっと難しいかもしれんけど。
質問させてください。
【1 OSの種類 .】 WindowsVista
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 コピペする程度なら可
【4 VBAでの回答の可否】 コピペする程度なら可
【5 検索キーワード 】 DrawingObjects:=True, Contents:=True セルの書式設定 マクロ シートの保護 ロックされたセル範囲の選択
以下のようなマクロをWEBでみつけて使っています。
Sub ProtectChange()
Dim sh As Object
'選択したシートを列挙する
For Each sh In ActiveWindow.SelectedSheets
sh.Select 'そのシートを選択する
If sh.ProtectContents = True Then 'シートが保護の時
sh.Unprotect Password:="psu"
Else 'シートが保護されてない時
sh.Protect Password:="abcdefg", DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
Next
End Sub
以前Excel2000を使っていたときは、このマクロを使えば「前回使ったときの条件」で複数シートの一括保護ができていました。
「前回使ったときの条件」というのは、シートの保護をしようとしたときに出る「シートの保護」というダイアログの内容のことです。
具体的には、「ロックされたセル範囲の選択」「ロックされていないセル範囲の選択」「セルの書式設定」のみっつだけにチェックを入れた状態で、
複数シートの一括保護ができていました。
しかし同じマクロをExcel2003で使ってみたところ、前回どのような保護をしたかどうかを記憶してくれないらしく、
上記マクロを使うと「ロックされたセル範囲の選択」「ロックされていないセル範囲の選択」だけにチェックが入った状態で作動してしまいます。
「セルの書式設定」にもチェックを入れた状態で複数シートの一括保護をするには、上記マクロのどこを書き換えればよいでしょうか?
わかる方、助言のほどよろしくお願いいたします。
AllowFormattingCells:=true
かな?
>>799 それを9行目の最後のところに挿入したら無事思ったような動作になりました!
助かりました、ありがとうございました!!
801 :
名無しさん@そうだ選挙にいこう:2008/02/05(火) 16:35:30
ヨーロッパかアメリカが日付、月、年
という順番だから
ついでに調べたらやっぱりヨーロッパだがそうだった
どうでもいいけど「22-1」って見ると新幹線のナンバーかと思ってしまう鉄ヲタな漏れ
【1 OSの種類 】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか 】 否
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Activate マクロ
マクロの記録、実行でエラーが発生します。
マクロ実行用のシート(マクロが登録されている)に、コピーをしたい文字列があり、
その文字列をコピーし新規作成したシートにコピーする動作を記録しました。
その記録したマクロを実行すると、
必ずエラーが発生します。デバッグを押すと
Windows("Book2").Activate
というのがエラーの発生源のようです。
ウィンドウ→整列→上下に並べて整列した後でコピー処理している関係で
どうしても「コピー」の後に、「貼り付け」するさいにBook2をアクティブにしないとならないのですが、どうすれば良いでしょうか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
初歩的な質問かもしれませんがお願いします
a1 a2 a3 a4
b1 b2 b3 b4
c1 c2 c3 c4
↑のように並んだデータを別のシートに自動的に一列で移す方法が
分かる方がいたらよろしくお願いします
a1 ←こんな感じです(実際に扱うデータは一列にするとMAX800です)
a2
a3
a4
b1
b2
b3
b4
c1
c2
c3
c4
>>805 発生する場所だけじゃなくて、エラーメッセージも重要。メッセージは何?
>>806 データはA1〜D199にあり、縦に並べるのは同一シート内のA200からはじめるとして、
A200=INDEX($A$1:$D$199,INT((ROW()-200)/4)+1,MOD(ROW()-200,4)+1)
A201以下も同じ式をコピペ
>>756 遅くなりましたが ありがとう
うまくゆきました
オフセット理解できました
自動記録だとできないですよね?
どこら辺の参考書を買えばいいんでしょうか?
どこら辺もここら辺も、参考書なんてイラネ
サイトで調べまくって自分でまとめたノートが最高の手引き
んでも活字って限界あるんだよね。
今までにEXCELの参考書類を何冊か読んだけど、どうしても壁が破れなかった人にはソースネクストのはお勧め。
ビジュアルで訴えられると凄く分かりやすいよ。
VBA版がマジ欲しい。誰か作って。
>>805 book2は開いておかないと無理だよ
それでもなってるなら、コード見せてほしい
つーかイマイチよくわからん
>>806 量が少なければ形式を選択して貼り付け、に列と行の入れ替えがある
813 :
806:2008/02/05(火) 19:54:58
>>808 早速解決しました
助かりました、どうもです
814 :
名無しさん@そうだ選挙にいこう:2008/02/05(火) 20:02:11
XP,Excel2003
複数列あるListBoxにListプロパティを利用して項目を追加する方法について
セル範囲を二次元配列にぶち込んでからListに送れば一発でできるけど
セル範囲が連続していない場合
例えばA1:A10とC1:C10をListBoxの項目にしたいときに簡単にやる方法はないですか?
http://support.microsoft.com/kb/213746/ja このやり方でできなくはないんだけど
For EachとかRedimとか使わずにこう格好よくやりたいわけです
>>807 実行時エラー"9"
インデックスが有効範囲にありません。
と出てきます。
私がやろうと思ったのは、マクロを登録してあるシートのシート1にコピー元の文書(ひながた)があって、
それを「編集」→「シートの移動又はコピー」→コピーにチェック→「新しいブック」にコピー
をしたかったのです。このコマンドはマクロ記録出来ないものですかね。
>>815 エラーメッセージからすると、812の言うとおり、Book2が無いのが原因っぽい。
マクロを記録したときと、実行するときとで、メインのブックのファイル名が違わない?
つまり、"Book2"という名前の新しいブックが作成されないのが原因。・・・と推測。
>>816 「編集」→「シートの移動又はコピー」→コピーにチェック→「新しいブック」にコピー
はマクロ記録出来ない機能ということでFA?
>>815 あ、ちなみに、やろうとしてることは、
Worksheets("Sheet1").Copy
の1行でできると思う。"Sheet1"の部分は、実際のワークシート名に合わせてね。
>>756 さんにお世話になったもんです
Sub Macro1()
中略
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlHairline
.ColorIndex = xlAutomatic
End With
ActiveCell.Offset(-1, 3).Range("A1").Select
End Sub
ここで一旦自動記憶を終了させました
ここに教えて貰った
Sub Macro1()
ActiveCell.Formula = "=sum($a$1:" & ActiveCell.Offset(-1, 0).Address & ")"
End Sub
を付け足したいです
よろしくお願いします
>>817 Dim Newbook As Workbook
Set Newbook = Workbooks.Add
Newbook.SaveAs Filename:="新規ブック"
で新規ブックって名前のブックを作ることは可能
>>819 すみません
できました
またいきずまったら来ます
こんばんは、お世話になります。
既存のExcelファイルについている、
フォームを削除したいのですが、クリックできなくて削除できません。どうすれば…
ボタンは選択して、Deleteできるのですが、
テキストの入力フォーム(?)なんかはどうすれば、selectできるのでしょうか。
824 :
名無しさん@そうだ選挙にいこう:2008/02/05(火) 23:14:26
>>823 表示→ツールバー→コントロールボックス→
デザインモード(三角定規みたいなアイコン)をクリック
で触れるようになるはず
825 :
名無しさん@そうだ選挙にいこう:2008/02/05(火) 23:19:16
>>817 シートコピー直後に新しいブックに名前を付けてやる操作を記録すれば動くはず
ただ、この辺の操作をやるなら、
>>820 の言ってるようなVBAを組むべき
意外と簡単よ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ?
改ページプレビューを見た後に、「標準」に戻すと改ページの箇所が点線表示されていますよね?
この点線を消すにはどうすればいいのでしょう?
すみません、教えてください。
主軸と第2軸をつかって、折れ線グラフを作ったのですが、
線が重なったときに、第2軸のデータが前面にきてしまいます。
順序を変更して、主軸のデータを前面にもってくる方法はありませんか?
主軸と第2軸を変えればいいのですが、そうすると主軸の値がグラフの右、
第2軸の値が左にきて、ちょっと・・・です。
よろしくお願いします。
828 :
名無しさん@そうだ選挙にいこう:2008/02/05(火) 23:58:17
>>826 いったん閉じて開きなおせば治る
ってか、改ページプレビュー見るってことは
印刷することがあるシートですよね?
だったら印刷するとどうなるかを常に意識しているほうが良いので
点線はそのままにしときましょう。
829 :
826:2008/02/06(水) 00:01:20
>>828 やっぱ再立ち上げしかないですか…
いえ、ちょっとエクセルの勉強してたもので
830 :
826:2008/02/06(水) 00:01:41
831 :
828:2008/02/06(水) 00:10:42
>>830 一応治る&残しておいたほうがいい
ってことで、ちゃんと調べたことないので、
もしかしたら方法あるかもしれません
が、それを調べるメリットは正直感じない^^;
832 :
826:2008/02/06(水) 00:11:59
質問させていただきます。
【1 OSの種類 .】 Windows XPSP2
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 条件 数値 設定
バイトのシフト表を作っているのですが、休憩時間の式を設定できなくて困っています。
たとえば12時出勤・22時退勤・休憩時間1.0時間の場合、セルは上から順に
1
A 12
B 22
C 1.0
と並んでいるのですが、退勤時間-出勤時間の値によって休憩時間が変わり、
出勤・退勤時間を入力すれば自動的に休憩時間が導かれるようにしたいのです。
たとえば退勤-出勤の値が4以上6以下なら休憩の値は0.25、
退勤-出勤の値が6.5以上7.5以下なら休憩の値は0.5、といった感じです。
Excelでこのような式の設定はできないものでしょうか。
ご回答よろしくお願いします。
>>833 できる。
ただし、条件の内容によって最適な方法が変わってくる。
とりあえず出勤時刻、退勤時刻、休憩時間の一覧表を作ってLOOKUPやINDEX関数で検索するのが
無難だろうな。保守もしやすいし。
5列目に4以上6以下なら休憩の値は0.25、
6列目に6.5以上7.5以下なら休憩の値は0.25
として、休憩の4行目はそれらを全て足す形にするのがいいと思う
>>833 人の会社のことだからどうでもいいけど
労基法では6時間以上の勤務で0.75時間以上の休憩を取らせる義務がある
8時間以上で1時間以上の休憩
標準モジュールでfornext、if文や変数は使えるようになったけど、
事務でvba使うならこれは覚えとけって構文はありますか?
標準モジュールでfornext、if文や変数は使えるようになったけど、
事務でvba使うならこれは覚えとけって物はありますか?
クラス化とかは意味もサッパリです
二重カキコしちゃいました。すいません
ループと条件分岐が使えれば、別に困ることはないと思うけどね。
クラス化だの、オブジェクト指向だのってのは、別に知らなくても全然困らないよ。
もちろん、VBAを使う以上、クラスの概念は分かってた方が断然有利だけど。
あとは、そうだな、配列や構造体を扱えると便利かな? ファイル入出力の方法とかも。
ありがとうございます
勉強してみます
843 :
811:2008/02/06(水) 12:14:24
動画なんてExcel操作の初歩なら必要性もあるだろうけど、なんでVBAで動画がいるんだ
一感よりも五感に訴えられる方が理解しやすいから。
教科書さえあれば、学校なんて要らないじゃん。とは言えないでしょう。
いや、せいぜい3感ぐらいだろw
初心者向けに、配列やクラスの概念まで、平成教育ナントカみたいに解説動画で説明しろ、
っていう意味なら、まだ分からんでもないかな。 つか、それVBAの解説じゃないしw
出来れば味覚や嗅覚に訴えてほすぃ
>>848 笑った
やる気さえあればサイト周るだけでどうにかなると思うんよね
常時ネットにつながってない会社とかなら分かるんだけど
やる気の問題はおいておいて、1冊体系的な本読んでおいた方がいい。
我流のつまみ食い勉強は、結局遠回りになる。
あと、そういう勉強した人は、一般の言葉が通じないせいか、変に意固地になる。
お前が悪いって言ってるわけじゃないのに、変に自分だけでやってきたっつープライドのせいかウザい。
全然新しい事覚えようとしない。
そんな体系的に学べる動画があると良いなあ。
詳細についてはその都度本を読めば良いと思うけど。
概要部分だけでも
需要はあると思うから、作れば金になるぞ
外資系の企業へ就職する事をイメージして勉強すりゃいいんだよ。
ああいうとこで役に立つには、英語のスキルと、それに業務のスキルが必要になる。
VBAも一緒で、基本的なプログラムの言葉としての体系と、
Excelのオブジェクトの体系の2本立てを意識して整理しないとうまくない。
自分がいま、どっち勉強してるかわからんまま丸暗記しようとするとおかしくなる。
853の頭悪そうなレスにがっかりw
わからないならいいよ。お前みたいな手遅れの奴に向けて言ってるわけじゃないから。
>>854は一連の動画希望者とは別人ぞよ。
いわゆる2chの中の煽り屋家業の人ね
どうでも良いけどw
それもどうでもいいよ。これから勉強しようと思って覗いてる不特定多数の人に向けて書いてるだけだから。
どうして web にある「散布図の作り方」には
隣り合わない列同士の散布図の作り方について言及していないのかね…
グラフ作るとき、毎回色や太さやフォントを変えるのはメンドイんですが
デフォルト設定する方法ありますか?
下手に中途半端に回答するよか、詳しい説明があったりするしな
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ?
エクセルで集計をする事になりました。
よい方法があったら教えてください。
よろしくお願いします。
・複数の数字を一箇所に集計させたいです。
数字の個数はCOUNTA等で出せるのは知ってるんですが、
その基準となる数字が沢山あり時間を短縮したいのです。
【例】
これ
↓
1 1 1
2 2 3
2 → 3 2
2
3
3
よろしくお願いします。
>>866 ありがとうございます。
ピポットよく分からないので色々と調べる事にします。
868 :
793:2008/02/06(水) 22:35:56
>>794 なるほど。それでその行がいらなければ非表示にする、と。
簡単ですね。ありがとうございます。そうすることにします。
そして、改めて質問したいのですが、
>>793みたいなことをしたい場合には
オートフィルタ、とかピボットテーブル、○○関数、みたいな方法ってないんでしょうか?
>>794のようにするのが簡単だしわかりやすいのですごく満足しているのですが、
いくつか方法があるなら知りたい、と思。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ?
ええと…
セルのA3〜G30だけを印刷範囲に設定したんですが、
印刷プレビューをみるとA1〜G2も表示されているんです。
どうしたら表示できないようにできるでしょうか…
>>869 範囲を指定して印刷
印刷範囲を先に指定しておく
印刷したくない所を非表示にしておく
どれでもお好きなのを
>>868 オートフィルタはそのままじゃ無理、ピボットテーブルは出来なくもないが向いてない
関数ならif関数か?
会社名がA列、発生がB、入金が・・とすると
やっぱりF列も作るんだけど、f2に
=IF(OR(A2<>"",B2<>"",C2<>"",D2<>"",E2<>""),1,0)
っていれてF列を1でオートフィルタとか
>>899 ページ設定→シート→行のタイトル
を消すといいかもしれない
865の質問の意味が分からん・・・ orz
873 :
869:2008/02/06(水) 23:00:03
大量の csv ファイルのみがあるのですが、これを全部 xls 形式に
変換を掛ける良い方法は無いでしょうか?
検索で見つけられたのは
ファイルダイアログで複数指定→今回あまりに大量にあってファイルダイアログが固まってしまう
コマンドラインで指定できる(Good!)→対応した Excel の元ファイルが無いとダメ
と言った状態です…分かりづらいのですが、好ましい形は、コマンドラインでも、
フォルダ選択でも、あるいは言語もオープンで用意できれば(Perl等)良いのですが、
フォルダを指定すると、サブフォルダも含めて csv を続々 xls に変換していくと言う形です。
フォーマットも 95 以降ならあまり問いません。
>>872 123を甲乙丙と帰ると、
A列に甲乙乙乙丙丙と並んでる時
B列に甲乙丙、C列に1.3.2と個数って意味だろ
>>873 だろ
なんかエクセルとは違う感性が育ってきた気がするぜ
excelで開きたいだけなら拡張子をxlsに変えるだけで何とかなるよ。
好きな言語のスレ行って聞いてくれば?
878 :
872:2008/02/06(水) 23:24:10
>>875 まったくその通りです。
ピポット使いなれてないから大変です(´・ω・`)ガンガル
IF関数で教えてください。
例えば D列の中に数字が入っていればAを表示、何も入ってなければBを表示というようにするには
どうすれば良いんでしょうか?
空欄は""で認識するわけかな。でも空欄以外の何かゴミみたいのが入っていれば判断出来なくなっちゃうか。。。
>>880 =IF(ISNUMBER($D1), $A1, IF(LEN($D1)=0, $B1, "その他"))
883 :
名無しさん@そうだ選挙にいこう:2008/02/07(木) 00:35:03
>>880 >>882 で求めてるものとは思うけど一応
対象が列全体なら
=IF(SUM(D:D)>0,"A",IF(COUNTA(D:D)=0,"B","その他"))
でおk
>>882 >>883 ありがとう。うまく行きました。
もう一つ、その数式を列全体に張るのではなく、A〜D列の最後に入力された行までに限定するようにするにはどういう方法がありますでしょうか?
>>884 ん? スマンけど意味がわかんね。
データが並んでる列で、Ctrl + ↓ を押すと
カーソルが最終行(最初にデータが途切れる直前)に飛ばせるけど、そういう操作のこと?
>>885 ごめんなさい。書き方が中途半端でした。
例えば
>>880の例で言うならば、D列で入力されている一番最後の行を認識して、
その最後の行数まで
>>882さんの数式を入力するようなことをしたかったのです。
CTRL+↓で最後の行を判定するとして、その行までどうやって一行目をコピーしようかと。
shift+ctrl+↓で一番下まで領域指定して、そこで数式を貼り付けしたものをマクロ記録して、マクロ実行すればおkですかね?自問自答ですが。
>>882 数値に正の値しか想定していないのではない?
SUM(D:D)が0の時は要求を満たさないよ。
889 :
888:2008/02/07(木) 08:13:10
ごめん。アンカー間違い。
>>883 数値に正の値しか想定していないのではない?
SUM(D:D)が0の時は要求を満たさないよ。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 一発 数値
いろんな関数や数式が埋め込まれているシートがあるのですが、それを一発技で
表示されている数値に変換する方法があったと思いました。
最近、どこかで見かけたと思うのだけど、このスレだったか忘れてしまいました。
よろしくお願いします。
891 :
883:2008/02/07(木) 08:16:07
>>889 そういやそうですね^^;
負もある場合は
=IF(COUNT(D:D)>0,"A",IF(COUNTA(D:D)=0,"B","その他"))
でいいのかな
892 :
888:2008/02/07(木) 08:17:45
893 :
名無しさん@そうだ選挙にいこう:2008/02/07(木) 08:18:08
>>890 Ctrl+A
Ctrl+C
ALT→E→S→V
>>893 一発くり抜き技って無かったでしたっけ。勘違いだったかな。
>>868 オートフィルタにはオプションがあって抽出条件を2つまで指定することができます。
ところでオートフィルタとピボットテーブルをすでにご存知ならそれ以上のテクニックを
追求しても不毛ですよ。
逆にオートフィルタやピボットテーブルが活用できるようにデータの方を整えるんだ
という発想に切り替えてみてはいかがでしょうか。
896 :
895:2008/02/07(木) 08:34:38
(続き)
エクセルでやりたいことを
>>868 1.検索
2.並べ替え
3.抽出
4.集計
に分類してみましょう。
抽出はオートフィルタで,集計はピボットテーブルでやるのがおすすめです。
うまくいかないからといって関数やVBAに走るのは最後の手段です。
>>887 数式の貼り付けまで自動化したいってこと?
マクロでOKだと思うけど、1列の貼り付け程度でそこまでするのは、
意図しない動きをさせないように、って観点からあんまり好ましくないと思う。
E列に数式を貼り付けるとして、E1の数式を Ctrl + C でコピー、カーソルをD列にして ctrl+↓
→でカーソルをE列に動かして、shift + ctrl + ↑、Ctrl + V で貼り付け。
この間 5秒と掛からないんだから、その都度操作した方がいい気がする。
>>897 すんません。例としては1列だけだったのですが、同様の列が数列あったのです。
【1 OSの種類 .】 Windows2000SP4
【2 Excelのバージョン 】 Excel2000 (9.0.3821 SR-1)
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 OLEObjects.Delete
OLEObjects.Deleteが失敗するときがあります
どこか構文が間違っているでしょうか、ご指導お願いします。
Sub cntrl_set()
With ThisWorkbook.Worksheets("Sheet1")
.OLEObjects.Delete
.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=745, Top:=65.25, Width:=60, Height:=18.75).Select
.OLEObjects("CommandButton1").Placement = xlFreeFloating
.OLEObjects("CommandButton1").Object.Caption = "発注処理"
.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=745, Top:=95.25, Width:=60, Height:=18.75).Select
.OLEObjects("CommandButton2").Placement = xlFreeFloating
.OLEObjects("CommandButton2").Object.Caption = "入荷処理"
.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=745, Top:=155.25, Width:=60, Height:=18.75).Select
.OLEObjects("CommandButton3").Placement = xlFreeFloating
.OLEObjects("CommandButton3").Object.Caption = "閉じる"
.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Left:=745, Top:=125.25, Width:=60, Height:=18.75).Select
.OLEObjects("CommandButton4").Placement = xlFreeFloating
.OLEObjects("CommandButton4").Object.Caption = "レポート"
End With
End Sub
900 :
名無しさん@そうだ選挙にいこう:2008/02/07(木) 12:56:08
Excel2003です
常に一番後ろのデータから決められた数のセルを選択するように
関数やマクロを組むことはできないですか?
>>900 まずb=の後に行数を入力してから使ってくれ
(今は仮に5と入れてある)
gyoでA列最後の行を取得
最後のgyo+1で空きセルを選択
見栄えが悪いのはあまり突っ込まないでくれ
Dim gyo As Long
Dim b As Long
b = 5
gyo = Range("$A$65536").End(xlUp).Row
gyo = gyo + 1
Range("A" & gyo & ":" & "A" & gyo + b - 1).Select
End Sub
>>899 こうかな?
For Each objOLE In .OLEObjects
objOLE.Delete
Next
>>903 ありがとうございます
【5 検索キーワード 】"objOLE" & "OLEObjects.Delete"
905 :
名無しさん@そうだ選挙にいこう:2008/02/07(木) 16:44:55
ノートパソコン(XP SP2)を買いまして
プリインストールされてるEXCEL2007でEXCEL2003で作成したファイルを使おうとしたら
オブジェクトの中に文字があるのを、文字修正すると、矢印キーの左右が逆に反応します。
矢印キーの左を押すと右にカーソルが移動して、右を押すと左に移動します。
セルだと左右は正常に動くのですが、直せますでしょうか?
>>894 一発は無いね
オレはだいぶ前から、値貼り付けアイコンは便利だから
設定しとくと便利だよと言ってるけど、それがあると
範囲>コピー>値貼り付け、の3クリックで済む。
カチカチカチ、1秒かからない。これが最短
>>906 俺は前スレ619の方法を取ってる
これをアドインで登録して、いつでも使えるようにしたよ
619 名前:名無しさん@そうだ選挙にいこう [sage] 投稿日:2008/01/12(土) 17:56:52
>>615 値のみ貼り付けするマクロを作って、
マクロのダイアログ(Alt-F8)でそのマクロのオプションを選択。
ショートカットキーを指定できるので、vにする。
(shift-vとかの方が無難な気もするけど)
マクロはこんなんでいいんじゃない。
Sub 値のみ貼り付け()
Selection.PasteSpecial xlValues
End Sub
908 :
名無しさん@そうだ選挙にいこう:2008/02/07(木) 22:12:58
>>906 マウスに手を伸ばすのがめんどくさい
不器用だからマウス使うの嫌いだ^^;
910 :
名無しさん@そうだ選挙にいこう:2008/02/08(金) 01:29:24
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 関数 並べ替え 空白 複数
このような表を
A B
1 8 c
2
3 10 d
4
5 7 e
6 8 f
このように並べ替えることはできますでしょうか
A B
1 7 e
2 8 c
3 8 f
4 10 d
5
6
A1セルに「後櫓」と入れると、B1セルが「陽子は後櫓が好き」になり、
A1セルに「松葉崩し」と入れると、B1セルが「陽子は松葉崩しが好き」とするには
どう書けばいいですか?
VLOOKUPではなく、複数ある文章の一部を変えたいんです。
912 :
910:2008/02/08(金) 01:42:17
910ですが、ちょっと言葉が足りなすぎだったんで
このような時に
A B …… AA BB
1 8 c 7 e
2 8 c
3 12 d 8 f
4 12 d
5 7 e
6 8 f
7行目に次を加えると
A B
7 10 g
この様に自動的に反映されるように考えているのですが
A B …… AA BB
1 8 c 7 e
2 8 c
3 12 d 8 f
4 10 g
5 7 e 12 d
6 8 f
7 10 g
何か良い方法はありませんでしょうか。
>>911 ?
意味がよく分らない。
="陽子は"&A1&"が好き"
=CONCATENATE("陽子は",A1,"が好き")
こういう事?
>>913 ありがとうです。
""が抜けてたので、うまく表示されなかったことが分かりますた。
>>910>>912 一応できた。
もっといい方法あるかも知れないから、参考程度に。
C列とD列を作業列に使っています。
[C1]=IF(COUNTBLANK(A1:B1)=2,100000000,A1+(CODE(B1)-96)/100)
[D1]=RANK(C1,$C$1:$C$7,1)
[AA1]=IF(OR(ISERROR(MATCH(ROW(),$D$1:$D$7,0)),ISBLANK(INDEX($A$1:$B$7,MATCH(ROW(),$D$1:$D$7,0),1))),"",INDEX($A$1:$B$7,MATCH(ROW(),$D$1:$D$7,0),1))
[AB1]=IF(OR(ISERROR(MATCH(ROW(),$D$1:$D$7,0)),ISBLANK(INDEX($A$1:$B$7,MATCH(ROW(),$D$1:$D$7,0),1))),"",INDEX($A$1:$B$7,MATCH(ROW(),$D$1:$D$7,0),2))
あとは、選択して7行目まで引っ張る。
916 :
793:2008/02/08(金) 03:47:36
>>895 なるほど。
オートフィルタは割と理解できていると思うのですが、
ピボットテーブルという機能はどういう機能かを何となく知っているだけで
使ったことがないので、その辺りを勉強してフォーマットから考え直してみます。
レスありがとうございました。
917 :
915:2008/02/08(金) 04:29:52
鯖落ち直った・・・
>>910>>912 ちょっとさっぱりさせました。
あと分かると思うけど、セル範囲はデータ入力予定位置まで含めて下さい。
又は範囲に名前を付けるとか。
とりあえず20行にしてみました。
[C1]=IF(ISBLANK(B1),100000000+ROW(),A1+(CODE(B1)-96)/100)
[D1]=RANK(C1,$C$1:$C$20,1)
[AA1]=IF(ISBLANK(INDEX($A$1:$B$20,MATCH(ROW(),$D$1:$D$20,0),1)),"",INDEX($A$1:$B$20,MATCH(ROW(),$D$1:$D$20,0),1))
[AB1]=IF(ISBLANK(INDEX($A$1:$B$20,MATCH(ROW(),$D$1:$D$20,0),2)),"",INDEX($A$1:$B$20,MATCH(ROW(),$D$1:$D$20,0),2))
で選択して20行目まで引っ張る。
データに0がないなら、セルの書式設定で表示形式で0を非表示にして(例 ##;-##;;@ )、
[AA1]=INDEX($A$1:$B$20,MATCH(ROW(),$D$1:$D$20,0),1)
[AB1]=INDEX($A$1:$B$20,MATCH(ROW(),$D$1:$D$20,0),2)
で選択して20行目まで引っ張る。
片方だけ入力される場合がある等は、適当に直してください。
「10aがだぶって2個入力される」には対応してません。
918 :
910:2008/02/08(金) 05:37:40
>>917 早速有り難うございます!
CODE関数を使ってA列とB列を足し合わせるところと、
空白行にも何か大きな数(JISコードの上限値よりも大きな値という事でしょうか?)+ROWを使えば
RANK関数が使えるようになるところは思いつきませんでした。
実際にはA列には日付が、B列には文字列が入るのですが、ここは自力で何とかなりそうです。
有り難うございました。
>>916 ピボットテーブルはエクセルで一番重要な機能だと思います。
簡単に使えますよ。
これ知らないで関数の達人やVBAマスターになってもピボットテーブルの
サブセットを一生懸命自作するだけの人になってしまいます。
920 :
名無しさん@そうだ選挙にいこう:2008/02/08(金) 08:15:08
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 括弧囲い文字 括弧囲み文字
(off) を一文字扱いで使いたいのですが、できますか?
>>920 意味が分かりません。
どう見たって一文字じゃないし。
>>919 まあ重要つーか、画期的な機能だな。
これでデータ範囲が元データの連続エリアに合わせて自動拡張してくれれば最強だ。今は関数使った名前定義してるけど。
924 :
名無しさん@そうだ選挙にいこう:2008/02/08(金) 12:20:04
=IF(OR(A1="c9",A1="ca",A1="cb"),B1*2,B1)
このような条件で今後"cc""cd"…と無限に増やしていくのは大変なので
文字列の1文字目がcなら全て2倍で計算するようにと
=IF(A1="c*",B1*2,B1)
とワイルドカードにしてみたんですがダメでした。
こういう場合はどう記述すればよいのでしょうか?
=IF(LEFT(A1,1)="c",B1*2,B1)
>>924 ワイルドカードが使える関数と使えない関数がある
=IF(COUNTIF(A1,"C*"),B1*2,B1)
でどうだろう
927 :
924:2008/02/08(金) 12:47:33
>>912の件だが
相談の内容は解決したからいいとして、なんでそもそもそんなトリッキーなことやりたいのかに興味がある。
並べ替えで一発なのに。
930 :
名無しさん@そうだ選挙にいこう:2008/02/08(金) 17:20:19
セル幅などをドラッグで変えた時にリアルタイムで数値が出ていたのが出てこなくなりました。
再起動しても駄目でした。設定を変更した憶えはないのですが…
バージョンはVistaに付属していたものです。
よろしくお願いします。
>>931 ありがとうございます。私に聞いてきた当人がいないんですが、これで大丈夫だと思います。
>>928 確認が必要な度に、昇順に並べ替えて確認して、
また元のデータ入力形式順に戻すのが手間だからじゃないかな。
あるいは、データ入力形式順の表と昇順の表を同時に存在させたいとか。
あれだったら、データ入力形式の表に入力していくだけで、
常に昇順の表がみれるじゃん。
>>933 まあだいたいそんなとこなんだろうけどね。
失礼を承知で言わせてもらうと、つまんないことに力を注いでんだなあという感想。
ああいうのはAccessでやればいいんだよ
Excelのピボットテーブルは便利だけど見るだけ。
Accessだとクエリーでつくった表に入力できちゃうのがいい。
936 :
名無しさん@そうだ選挙にいこう:2008/02/08(金) 23:20:10
2000でセルをスクエア(正方形)にしたいのですがどうすればいいのでしょうか?
列と行の調整だとずれてしまいます。
>>936 エクセルは幅と高さにそれそれ違う単位を使うので、希望の大きさのセルを作るのが大変です。
セルのサイズをミリ単位で設定できるアドインがフリーであるので、それを使ってください。
>>935 アクセスのクエリ結果を直接編集できるという機能と、ピボットテーブルは守備範囲がかなり違うので比較するのは無理があると思うよ。
クエリというのは正規化されてバラバラになっているデータをつなぎあわせるのが主目的でしょ。
クエリと比較するのであればVLOOKUP関数あたりじゃないかな。
939 :
名無しさん@そうだ選挙にいこう:2008/02/09(土) 09:31:04
>>936 セル幅(高)の横に出てくるピクセル単位でサイズを合わすと正方形になるよ
940 :
名無しさん@そうだ選挙にいこう:2008/02/09(土) 11:05:36
1からVBAを学び即戦力にしたいのですが、
かんたんプログラミング Excel2003 VBA
の基礎編と関数編
の2冊があれば、なんとかなるでしょうか?
942 :
名無しさん@そうだ選挙にいこう:2008/02/09(土) 11:38:02
レスありがとう。
日常業務である指標管理(ルーチンワーク)の
自動化です。
主に切り貼りがメインですが、データをエミュレータから
引っ張ってくることもあります
>>942 指標のもとになるデータを適切な形式に整えたいということでしょうか。
それだったら(その本を含めて)なんでもオーケーでしょう。
ここからは私の意見です。事務処理でExcelのVBAが本当に必要になる機会はめったにありません。
一度Accessでも使ってみてください。データの切り貼りをプログラミングしようなんてばかばかしくなるかもしれませんよ。
944 :
名無しさん@そうだ選挙にいこう:2008/02/09(土) 12:18:05
んーなるほど。。
指標管理など事務処理にマクロは不向きなんですね。
しかし残念ながらセキリュリテイ上、アクセスをインスコ
できませんのでVBA勉強して頑張ります。
他に良書があれば推薦おねがいします。
>>944 想像ですがもしかしてその指標というのは、
顧客別売上
営業担当者別販売額
月別クレーム件数
のようなものではないですか?
946 :
944:2008/02/09(土) 13:43:14
おっしゃるように毎月の指標(顧客売上ほか)です。
全社データから各人PCのエミュ?で各顧客データを取り込み、
それを貼り付けしてエクセルにうつしています。
この作業が全顧客50軒ほどになるため、単純な貼り付け
作業で3時間ほどつぶれます。
ですので、この
エミュでひろった黒画面上のデータ→エクセルへのデータ貼付け
の部分を自動化したい訳です。
(似たマクロを組んだ方がいたので、物理的には可能なようです)
エクセルにデータを貼付けた後は、リンク貼付け他で所定の
位置に振り分けて完了です。
はて、どうしたものか。
基礎から勉強になる良書や、類似した実例などがある書籍・HP
があればぜひ案内おねがいします
948 :
945:2008/02/09(土) 14:23:30
エミュというのは端末エミュレータかな?
きっと社内の販売管理システムからデータを取りこんでいるのでしょう。
システムの内部ではもともと販売実績データを顧客ごとに分けていない
はずです。それをあなたは顧客別に実績照会しているだけなのです。
顧客別に分断されたデータではなく、全顧客がいっしょになってるデータ
を入手すべきです。システム管理部門に相談してみるとよいでしょう。
949 :
名無しさん@そうだ選挙にいこう:2008/02/09(土) 14:43:12
おっしゃる通りで間違いないと思います。
端末エミュレータだと思います。
おっしゃるように顧客別に実績照会しています。
(各顧客固有のNOをたたいて、データを抜き出しています)
しかし、あいにく全顧客がいっしょになってるデータを入手す
るのは難しいと思われます。
個人情報管理の観点から厳重に管理されているからです。
ですので、
端末エミュレータに当該顧客NOをうちこむ
↓
端末エミュレータの照会画面に表示された顧客売上をコピー
↓
コピーしたデータをエクセルの当該顧客欄に貼付け
↓
(これを約20〜50回繰り返し)
を何とか自動化させたいのです。
上記流れを一巡のみですが、過去にマクロを組んで成功させている例
(そんなに長いVBAではない)
があると聞いてますので、物理的には可能なんだと思います。
950 :
945:2008/02/09(土) 15:17:24
>>949 端末エミュレータの操作をVBAで自動化するのは難しいでしょうね。
もちろんコンピュータ内部のデータなんですから物理的には可能ですよ。
代替案1
端末エミュレータのほうにマクロ機能ないのでしょうか。
それでなんとかできる場合があるかもしれません。
代替案2
システム部門にデータをくれと正式に申し込む。
顧客番号別の売上実績は個人情報保護の対象ではないかもしれません。
名前、住所、電話番号などは含まれていないでしょ。
代替案3
月別売上照会の機能をシステムに組み込んでもらう。
成功してる例があるならそれ見ろよw
手元にないものテストなんてできねーんだから。
>>949 VBAを使って他のアプリケーションを操作し、ウィンドウに表示されたデータを読み取る方法はありますが、
ExcelよりもWindowsの仕組みについて詳しくないと難しいですよ。
特定のソフトにこだわらず、パソコン全体の操作をマクロとして記録、再現するフリーウェアがありますので、
そういうのを使った方がいいのではないでしょうか。
それからエミュを操作するためにVBAを勉強したいというなら、上に挙がった2冊だけじゃ
全然役に立たないんじゃないかな?普通のVBAの勉強にはいい本だろうけど。
他のアプリと連携するような事をしたいなら、別のもん読んだ方がいいかもね。
っつーか、その謎のアプリがわからなきゃ、何読めばいいかもわからんけど。
COMで連携できるなら、それ系の本読めばいいし、sendkeysとかで無理やり動かすなら
本読むよりはネットでサンプル探して、あとは自分でストップウオッチ片手にチューニングでもしてくれ。
絶対動かなくなるけどw
954 :
sage:2008/02/09(土) 15:47:10
承知しました。
まずは成功PGの内幕を把握するのが良策ですね。
必死に探してみます!
またぜひ相談させてください。
でもそういうのって、予めアクセスとかで簡単に集計できるようになってるトコロが多いよな
中小は知らんけど
お世話になります。
Excelの画面の移動なんですが、
マウスのホイールやの移動は、
決まったセル数だけ移動するので、
セルの高さや幅によって、画面のスクロールの量が違います。
(高さが、高いセルがあると、どこに移動したのか一瞬つかめなくなります。)
これを決まったピクセル分の移動に変えることは出来ないでしょうか。
(そうすれば、セルの高さに、移動が連動しないので、移動先をロストした後の確認する手間を省けるのですが。)
(たまに会社のPCで非常に画素が小さいPCをつかうことがあるのですが、苦痛で…。)
質問させてください。
VBAのコードが知りたいです。
フォーマットがある程度統一された、複数のExcelファイル、シートがあります。
ある決まった位置のセルは、位置が決まっていない別のセルの内容を数式によってコピーしています。
B1のセルの内容が、『=Z9』の様にです。(Z9の内容は任意。Z9でない場合もある。B1は固定位置)
これを、コピー>形式を選択して貼り付け、で数式から値に変えたいのですが、
VBAのコードとしてはどうなるでしょうか。
Excelは2000、2002、2003です。(確か)
という質問をしようとして、マクロの記録という機能があることを知った(いまさら…)ので使ってみると、
Range("B1").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
というコードが記録されたのですが、いい感じでしょうか?
何か問題が考えられたりしないでしょうか。
あと、『マクロの保存先』というので、『個人用のマクロブック』というのがありますが、
これはどこに保存されているのでしょうか。
編集中のExcelファイルには、『個人用のマクロブック』を使用した痕跡は残るのでしょうか。
よろしくお願いします。
>>957 とりあえず1時間くらい試行錯誤したり検索したりしてみてはどうか。
検索したらどれも答えがのっててワロタ
960 :
名無しさん@そうだ選挙にいこう:2008/02/09(土) 18:04:30
▼━質問テンプレ ━━━━━━━━━━━━
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 weekday weekend 日曜 祭日
A列3行目以下に、申込み日を入力するようになっているとき、入力された申込み日
データが土・日・祭日の年月日の場合、そのセルが赤く塗られるようにしたいのですが。
よろしく。
他力本願かw
いい流れだなwww
>>962 やだ
オレが丁寧な言葉遣いでよろしくって言ってんだから
答えがわからないんならレスするなボケ
ほらほら!答えがわかるヤツ!早く書けよカス!
以上、
>>960心の叫び
964 :
名無しさん@そうだ選挙にいこう:2008/02/09(土) 18:38:43
病院行って来い
いや、
>>960は今後質問テンプレはこれを使おうって意味の書込みじゃね?
同一セル内に、文字列と計算式を混入する方法を教えてください。
例:「合計 30点」と同一セルに表示したい
国語←任意の文字列
30←セル参照計算式(例:A1×2)で半角から全角に変える
点←任意の文字列
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 同一セル、文字列、挿入、計算式
A1に15と入ってた場合30にするって意味なら↓
=TEXT("合計"& JIS(A1*2) &"点",0)
970 :
960:2008/02/09(土) 19:32:05
自己解決しまいsた。
答えられなかった馬鹿どもは無駄なレスすんなよ。
972 :
966:2008/02/09(土) 19:37:49
>>968 桁区切りをつける場合はどうすればいいでしょうか?
JIS(A1*1,000)だとエラーでます
そりゃそうだw TEXT()をつかうといいよ