• ベストアンサー

フラグ

MS-ACCESS97でフラグをたてるという表現を聞いたことが あります。Visual Basicでもフラグを用いるという表現を 聞きました。この場合のフラグとは一体どのような概念なのでしょうか。フラグとはまたコンピュータ全般に渡って 使用される概念なのか、ご教示下さい。

  • TFUND
  • お礼率57% (12/21)

質問者が選んだベストアンサー

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

日本語にするとその名の通り「旗」で、旗が立っているか、立っていないか、というところから発生した言葉です。コンピュータでは、「0」および「1」で表現します。 使い道は主に2つあります。 1)プログラミング上の変数などで使用する場合 前処理で、条件分岐させる場合、例えば、 Dim intFlg As Integer (処理) If 条件 Then intFlg = 0 Else intFlg = 1 End If (処理) If intFlg = 1 Then (処理) End If というように使用します。 ただし、多用すると非常に見づらいプログラムになります。 極力フラグを使用しないプログラミング技術を身につけましょう。 2)データベースのフィールドとして使用する場合 例えば、社員マスタがあったとします。 フィールドは、「社員コード」「社員名」「部署コード」 だとします。 これに、退職したか、在籍中かの区分として、「退職フラグ」などを設けたりすることがあります。 「1」である場合、退職したという印になります。 主に、ON、OFFで表現できるものは「フラグ」、3つ以上になる場合は「区分」と表現する場合が多いです。

TFUND
質問者

お礼

VBのコードまで書いて頂いてどうもありがとうございました。

その他の回答 (2)

  • takakohno
  • ベストアンサー率30% (12/40)
回答No.3

旗の上げ下げですね。 データベースのようなものでは、リスト上で必要なデータにチェックを付けていき、チェックしたデータだけ集計を取るという感じでしょうか? コンピュータの心臓部であるCPUでは内部的に2進数表現で、足し算するときにキャリーフラグを用います。 いわゆる筆算の繰り上げですね。

参考URL:
http://www.ascii.co.jp/ghelp/37/003769.html
TFUND
質問者

お礼

URLを教えて頂きありがとうございます。

noname#744
noname#744
回答No.1

こんにちは。 コンピュータ全般というよりも、プログラミングで使う技法のひとつ、という感じでしょうか。 ですので、データベースでも、VisualBasicでも、C言語でも、Java言語でも、全てのプログラミング言語にほぼ共通して存在する概念です。 基本的には、0 か、1 または、それと同じ働きをもつもの、で表現される事が多く、プログラムでは、フラグが0ならば、処理を行い、1ならば行なわない、といった感じに使用します。 フラグは、日本語にすれば、旗、ですね。 旗が上がってれば(1ならば)、下がってたら(0ならば)という条件分岐に利用する感じです。

TFUND
質問者

お礼

疑問が解けました。かねてから、2年ほどになるでしょうか、常々疑問に思って参りました。御回答どうもありが とうございました。

関連するQ&A

  • Access2013、有り無しなどのフラグのデータ

    Access2013、有り無しなどのフラグのデータ型を何にしたら良いのか、悩んでいます。 しょうもない質問かと思われる方もおられるかもしれませんが、 Yes/No型か 数値のバイト型か 整数型か もしかすると、先でMS SQL Serverに移行するかもしれない可能性がありますが、今のところ未定です。 よろしくお願いします

  • エクセルでのフラグの立て方

    A列に「東京」、B列に「大阪」とあり、「東京」と入力されているセル(ここではA1)の右へ6つ目のセルに「3」とあった場合、I1セルにフラグを立てるようにしたいのです。 「ここでは」と書いたことがミソで、2行目のように東京がB列に来る場合もあります(G列のセルが「3」の場合と指定できない)。ご教示よろしくお願い致します。

  • エクセル:フラグの立て方

    図のような表で、C列の売上げに値がある会社名を基準に、 売上げに値が入っていないセルも含めて、売上げがあるものと同じ 年月、会社名だった場合にD列にフラグとして会社名を表示させたいです。 IFとANDを使って色々やってみたのですができませんでした。 どうかご教示ください。

  • 空いているビットフラグの確認方法

    空いているビットフラグの中で最小のものを見つけたいのですが、 うまい方法がわからず、どのように作成したら良いか、ご教授お願いします。 たとえば、 int nFlg = 0xFF8F; //上位16ビット省略 というフラグの場合、空いている(ビットフラグの無い)箇所は int nFalse = ~nFlg; // = 0x0070 で求められますが、この中から、最小のフラグ位置(0x0010)を求めたいのです。 (未使用のフラグの中から、使えるビットひとつを選びたいのです・・) 総当りしかないでしょうか? よろしくお願いします。

  • Z80のフラグレジスタについて

    Z80のフラグレジスタについてです。 3bit目と5bit目は使用しないということが本に書いてありますが、このbitに数値(1)が入る場合ってあるのでしょうか? もし入るならどのような時なのでしょうか?

  • 色のついたセルにフラグを立たせることはできるでしょうか?

    よろしくお願い致します。 既に使用されている表なのですが、 ステータスを人目で把握する手段として、案件がクローズすると 行を塗りつぶしているのですが、 例えば、1列追加し、列タイトルに「塗りつぶし」とした場合、 塗りつぶした行を1、通常の場合は0とすることは可能でしょうか? あるいは塗りつぶした行だけフィルタリングは可能でしょうか。 フラグが立っている行を塗りつぶすことはできるのですが、 逆は難しいでしょうか? 以上,よろしくお願い致します。

  • TCP/IPでRST(リセット)フラグのデータって?

    TCP/IPのデータで質問です。 パソコンのサーバーと無線ハンディをTCP/IPで通信しています。サーバー側は無線ハンディからの要求に応えるプログラム(Visual Basic,Winsockコントロール使用)が起動されています。 このサーバーに無線ハンディ30台(もっと多いこともある)から,いっせいに接続要求を出すのですが,この接続に失敗するハンディがあったりします。 このときLAN上のデータを見てみると,パソコン側からRST(リセット)フラグ(強制切断)のデータが出ていました。どうやらこれが接続に失敗している原因のようなのです。 このRST(リセット)フラグのデータが出るのは,どう行ったときなのでしょうか? どういう理由でRST(リセット)フラグのデータが出るのでしょうか? ご存知の方,いらしゃいましたら教えていただけないでしょうか? よろしくお願い致します。

  • VBでXMLデータをMS-ACCESS2000へインポートしたい

    VBを使用して,Ms-AccessへXMLデータをインポートしたいと考えています. ADOを用いて,MS-ACCESSのテーブルデータ→XMLへ変換することはできたのですが,これとは逆にXMLデータをMS-Accessへインポートしたいです. よろしくお願いします. *****環境***** OS:Windows2000+SP3 Visual Basic 6.0+SP5 RDB:MS-ACCESS2000+SP3 MSXML 4.0+SP2 ADO2.7+SP1 **************

  • ディレクトリのパーミッション(実行フラグ)について

    今まで意識して考えたことが無かったのですが、ふと気づいたので質問させていただきます。 ディレクトリの実行フラグが立たないとそのディレクトリ内のファイルに対して読み書きが出来ないので、通常はパーミッションを必ず奇数にする必要があると思っていました。 これまでは意識せずそうしてきたのですが、自分の使っているVineLinuxでは/var/logのパーミッションが666となっていました。 不思議なことに!?他の一般ユーザーではアクセスすらできないlogディレクトリに、rootでは問題なくlogディレクトリへのアクセスやファイルの作成等ができました。 たしかにrootで消せなくなるファイルがあると問題になるのでrootは特別なのかもしれませんが、ディレクトリのパーミッションが666の場合どういう扱いになるのか教えていただけないでしょうか。

  • Accessレポートで場合分けした直線の引き方

    いつもお世話になっております。 Access2003を使用しています。 テーブルで参加者名簿があり、その中に欠席者フラグのフィールドがあります。 この欠席者フラグフィールドに、テキストで1と入力されている人の名前の上に、 レポートから印刷した時、欠席者と分かるように直線を引きたいと考えています。 しかし、このように場合分けして直線が出たり出なかったりするやり方が分からず 困っています。 どうか、ご教示をお願いします。

専門家に質問してみよう